int (LookupElement lookupElement, PsiType qualifierType) { Object object = lookupElement.getObject(); PsiSubstitutor substitutor = null; GroovyResolveResult resolveResult = null; if (object instanceof GroovyResolveResult) { resolveResult = (GroovyResolveResult)object; substitutor = resolveResult.getSubstitutor(); object = ((GroovyResolveResult)object).getElement(); } // default groovy methods if (object instanceof GrGdkMethod && GroovyCompletionUtil.skipDefGroovyMethod((GrGdkMethod)object, substitutor, qualifierType)) { return -1; } // operator methods if (object instanceof PsiMethod && PsiUtil.OPERATOR_METHOD_NAMES.contains(((PsiMethod)object).getName()) && !checkForIterator((PsiMethod)object)) { return -3; } // accessors if there is no get, set, is prefix if (object instanceof PsiMethod && GroovyPropertyUtils.isSimplePropertyAccessor((PsiMethod)object)) { return -1; } // inaccessible elements if (resolveResult != null && !resolveResult.isAccessible()) { return -2; } return 0; }