void (@NotNull GrCall call, @NotNull GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map<String, NamedArgumentDescriptor> result) { GrArgumentList argumentList = call.getArgumentList(); if (argumentList == null) return; GrExpression[] expressionArguments = argumentList.getExpressionArguments(); if (expressionArguments.length > 1 || (expressionArguments.length == 1 && !(expressionArguments[0] instanceof GrReferenceExpression))) { return; } if (!PsiUtil.isTrustedMapConstructorResult(resolveResult)) return; for (PsiClass psiClass : getCorrespondingClasses(call, resolveResult)) { if (!isClassHasConstructorWithMap(psiClass)) continue; PsiClassType classType = JavaPsiFacade.getElementFactory(psiClass.getProject()).createType(psiClass); processClass(call, classType, argumentName, result); } }