boolean (PsiElement @NotNull [] children1, PsiElement @NotNull [] children2, @NotNull List<PsiElement> candidates, @NotNull Match match) { if (children1.length != children2.length) return false; for (int i = 0; i < children1.length; i++) { PsiElement child1 = children1[i]; PsiElement child2 = children2[i]; if (!matchPattern(child1, child2, candidates, match) && !matchExtractableExpression(child1, child2, candidates, match)) { return false; } } return true; }