boolean (@NotNull PsiElement pattern, @NotNull PsiElement candidate, @NotNull Match match) { if (myMatchType == MatchType.EXACT || !(pattern instanceof PsiReferenceExpression) || !(candidate instanceof PsiReferenceExpression)) { return false; } if (myPattern.length == 1 && myPattern[0] == pattern) { return false; } ExtractableExpressionPart part1 = ExtractableExpressionPart.matchVariable((PsiReferenceExpression)pattern, null); if (part1 == null || part1.myVariable == null) { return false; } ExtractableExpressionPart part2 = ExtractableExpressionPart.matchVariable((PsiReferenceExpression)candidate, null); if (part2 == null || part2.myVariable == null) { return false; } return match.putExtractedParameter(part1, part2); }