diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/PsiUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/PsiUtil.java index 0a3410af3b17..05d32ba2e114 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/PsiUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/PsiUtil.java @@ -562,11 +562,15 @@ public class PsiUtil { @Nullable public static PsiClass getContextClass(PsiElement context) { - GroovyPsiElement parent = PsiTreeUtil.getParentOfType(context, GrTypeDefinition.class, GroovyFileBase.class); - if (parent instanceof GrTypeDefinition) { - return (PsiClass)parent; - } else if (parent instanceof GroovyFileBase) { - return ((GroovyFileBase)parent).getScriptClass(); + while (context != null) { + if (context instanceof GrTypeDefinition) { + return (PsiClass)context; + } + else if (context instanceof GroovyFileBase) { + return ((GroovyFileBase)context).getScriptClass(); + } + + context = context.getContext(); } return null; }