diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyFileImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyFileImpl.java index 9c7ac07496bb..5c119d2ef2d9 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyFileImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyFileImpl.java @@ -124,7 +124,9 @@ public class GroovyFileImpl extends GroovyFileBaseImpl implements GroovyFile { PsiClass scriptClass = getScriptClass(); if (scriptClass != null) { - if (!scriptClass.processDeclarations(processor, state, lastParent, place)) return false; + if (!(lastParent instanceof GrTypeDefinition)) { + if (!scriptClass.processDeclarations(processor, state, lastParent, place)) return false; + } if (!ResolveUtil.processElement(processor, scriptClass, state)) return false; } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy index a23c62b0141e..c46e83ef7552 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy @@ -825,4 +825,17 @@ def test() { assertTrue parameters.length == 1 assertEquals "java.lang.Object", parameters[0].type.canonicalText } + + public void testScriptMethodsInClass() { + def ref = configureByText(''' +class X { + def foo() { + scriptMethod('1') + } +} +def scriptMethod(String s){} +''') + + assertNull(ref.resolve()) + } }