public static boolean isRawMethodCall(GrMethodCallExpression call) {
    final GroovyResolveResult result = call.advancedResolve();
    final PsiElement element = result.getElement();
    if (element == null) return false;
    if (element instanceof PsiMethod) {
      final GrExpression expression = call.getInvokedExpression();
      if (expression instanceof GrReferenceExpression) {
        final GroovyMethodCallReference reference = call.getImplicitCallReference();
        if (reference != null) {
          Argument receiver = reference.getReceiverArgument();
          PsiType receiverType = receiver == null ? null : receiver.getType();
          if (receiverType instanceof GroovyClosureType) {
            return isRawClosureCall(call, result, (GroovyClosureType)receiverType);
          }
        }
      }
      PsiType returnType = getSmartReturnType((PsiMethod)element);
      if (expression instanceof GrReferenceExpression && result.isInvokedOnProperty()) {
        if (returnType instanceof GroovyClosureType) {
          return isRawClosureCall(call, result, (GroovyClosureType)returnType);
        }
      }
      else {
        return isRawType(returnType, result.getSubstitutor());
      }
    }
    if (element instanceof PsiVariable) {
      GrExpression expression = call.getInvokedExpression();
      final PsiType type = expression.getType();
      if (type instanceof GroovyClosureType) {
        return isRawClosureCall(call, result, (GroovyClosureType)type);
      }
    }

    return false;
  }
public static boolean isRawMethodCall(GrMethodCallExpression call)