Collection<PsiClass> (@NotNull Collection<PsiClass> candidates, @NotNull GrReferenceElement<?> referenceElement) { PsiElement typeElement = referenceElement.getParent(); if (typeElement instanceof GrTypeElement) { PsiElement decl = typeElement.getParent(); if (decl instanceof GrVariableDeclaration) { GrVariable[] vars = ((GrVariableDeclaration)decl).getVariables(); if (vars.length == 1) { PsiExpression initializer = vars[0].getInitializer(); if (initializer != null) { PsiType type = initializer.getType(); if (type != null) { return filterAssignableFrom(type, candidates); } } } } if (decl instanceof GrParameter) { return filterBySuperMethods((PsiParameter)decl, candidates); } } return super.filterByContext(candidates, referenceElement); }