void (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 + "()"); }