ClassResolveResult () { final GroovyResolveResult resolveResult = myReferenceElement.advancedResolve(); return new ClassResolveResult() { @Override public PsiClass getElement() { final PsiElement resolved = resolveResult.getElement(); return resolved instanceof PsiClass ? (PsiClass)resolved : null; } @Override @NotNull public PsiSubstitutor getSubstitutor() { return resolveResult.getSubstitutor(); } @Override public boolean isPackagePrefixPackageReference() { return false; } @Override public boolean isAccessible() { return resolveResult.isAccessible(); } @Override public boolean isStaticsScopeCorrect() { return resolveResult.isStaticsOK(); } @Override @Nullable public PsiElement getCurrentFileResolveScope() { return resolveResult.getCurrentFileResolveContext(); } @Override public boolean isValidResult() { return isStaticsScopeCorrect() && isAccessible(); } }; }