void (@NotNull GrMethodCallExpression methodCall) { final GrExpression invokedExpression = methodCall.getInvokedExpression(); if (myExpression.equals(invokedExpression)) { myResult = new TypeConstraint[]{SubtypeConstraint.create(GroovyCommonClassNames.GROOVY_LANG_CLOSURE, methodCall)}; return; } final GrClosableBlock[] closureArgs = methodCall.getClosureArguments(); if (ArrayUtil.contains(myExpression, (Object[])closureArgs)) { final GrArgumentList argumentList = methodCall.getArgumentList(); final GrNamedArgument[] namedArgs = argumentList.getNamedArguments(); final GrExpression[] expressionArgs = argumentList.getExpressionArguments(); final GroovyResolveResult[] callVariants = ResolveUtil.getCallVariants(myExpression); processCallVariants(methodCall, callVariants, namedArgs, expressionArgs, closureArgs); } }