private void handlePatternAsPredicate(PsiLambdaExpression lambda, PsiParameter parameter, PsiMethodCallExpression call) {
        if (!MATCHER_FIND.test(call) && (!java11 || !MATCHER_MATCHES.test(call))) return;
        PsiMethodCallExpression matcherCall = MethodCallUtils.getQualifierMethodCall(call);
        if (!PATTERN_MATCHER.test(matcherCall)) return;
        PsiExpression matcherArg = matcherCall.getArgumentList().getExpressions()[0];
        if (!ExpressionUtils.isReferenceTo(matcherArg, parameter)) return;
        PsiExpression pattern = matcherCall.getMethodExpression().getQualifierExpression();
        if (pattern == null || !LambdaCanBeMethodReferenceInspection.checkQualifier(pattern)) return;
        String methodName = "find".equalsIgnoreCase(call.getMethodExpression().getReferenceName()) ? "asPredicate" : "asMatchPredicate";
        registerProblem(lambda, "Pattern." + methodName + "()",
                        ParenthesesUtils.getText(pattern, ParenthesesUtils.POSTFIX_PRECEDENCE) + "." + methodName + "()");
      }
private void handlePatternAsPredicate(PsiLambdaExpression lambda, PsiParameter parameter, PsiMethodCallExpression call)