List<Object> (@NotNull GroovyPsiElement place) { GroovyResolveResult[] variants = ResolveUtil.getCallVariants(place); final List<Object> elementToShow = new ArrayList<>(); final PsiElement parent = place.getParent(); if (parent instanceof GrMethodCall) { final GrExpression invoked = ((GrMethodCall)parent).getInvokedExpression(); if (isPropertyOrVariableInvoked(invoked)) { final PsiType type = invoked.getType(); if (type instanceof GrClosureType) { addSignatureVariant(elementToShow, (GrClosureType)type); } else if (type != null) { addMethodAndClosureVariants(elementToShow, ResolveUtil.getMethodCandidates(type, "call", invoked, PsiUtil.getArgumentTypes(place, true))); } } else { addMethodAndClosureVariants(elementToShow, variants); } } else { elementToShow.addAll(Arrays.asList(variants)); } filterOutReflectedMethods(elementToShow); return elementToShow; }