Fix for PR 18700: False positive Design8 (lambda expression containing function call).

Fixed it by having ASTLambdaExpression.isFindBoundary() return true, analogous to ASTClassOrInterfaceBodyDeclaration.isFindBoundary().
This commit is contained in:
dreniers
2017-05-23 09:54:39 +02:00
parent 253d35a926
commit 4f826d2e08
2 changed files with 20 additions and 0 deletions

View File

@ -15,6 +15,10 @@ class ASTLambdaExpression extends AbstractJavaAccessNode {
super(p, id);
}
@Override
public boolean isFindBoundary() {
return true;
}
/** Accept the visitor. **/
public Object jjtAccept(JavaParserVisitor visitor, Object data) {

View File

@ -105,6 +105,22 @@ public class Foo {
</test-code>
<test-code>
<description><![CDATA[
method in lambda expression is ok
]]></description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class Foo {
public Foo(String s) {
addActionListener(() -> bar());
addActionListener(() -> { bar(); });
addActionListener((a) -> { bar(); });
}
public void bar() {}
}
]]></code>
</test-code>
<test-code>
<description><![CDATA[
bug report 975407
]]></description>
<expected-problems>0</expected-problems>