From e257ec9f55494ad462ff8ab81a4c0c133dcee403 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 30 Dec 2014 20:13:50 +0100 Subject: [PATCH] SSR: fix lambda matching problem --- .../structuralsearch/impl/matcher/JavaMatchingVisitor.java | 2 +- .../com/intellij/structuralsearch/StructuralSearchTest.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java index 80b5fdb513e3..30331a8afa08 100644 --- a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java +++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java @@ -392,7 +392,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor { result = myMatchingVisitor.matchSons(parameterList1, expression2.getParameterList()); } final PsiElement body1 = getElementToMatch(expression.getBody()); - if (body1 != null) { + if (body1 != null && result) { result = myMatchingVisitor.matchSequentially(body1, getElementToMatch(expression2.getBody())); } myMatchingVisitor.setResult(result); diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java index 0575de37622d..73d6780e2429 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java @@ -2955,6 +2955,9 @@ public class StructuralSearchTest extends StructuralSearchTestCase { String pattern5 = "()->{/*comment*/}"; assertEquals("should find lambdas with comment body", 1, findMatchesCount(source, pattern5)); + + String pattern6 = "('_Parameter+) -> System.out.println()"; + assertEquals("should find lambdas with at least one parameter and matching body", 0, findMatchesCount(source, pattern6)); } public void testFindDefaultMethods() {