From d39ff7df9bc4d50dfdbc4c115e6d84f30ac65199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Mon, 2 May 2022 19:13:51 +0200 Subject: [PATCH] [js] Fix object property with method type Fix #3948 --- .../lang/ecmascript/ast/AbstractInfixEcmascriptNode.java | 2 +- .../pmd/lang/ecmascript/ast/JsTreeDumpTest.java | 6 ++++++ .../pmd/lang/ecmascript/ast/testdata/issue3948.js | 3 +++ .../pmd/lang/ecmascript/ast/testdata/issue3948.txt | 9 +++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.js create mode 100644 pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.txt diff --git a/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/AbstractInfixEcmascriptNode.java b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/AbstractInfixEcmascriptNode.java index 59d2e3d861..0ec8dd04b6 100644 --- a/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/AbstractInfixEcmascriptNode.java +++ b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/AbstractInfixEcmascriptNode.java @@ -27,7 +27,7 @@ public class AbstractInfixEcmascriptNode extends Abst if (setImage) { if (infixExpression.getOperator() == Token.ASSIGN_BITXOR) { super.setImage("^="); - } else { + } else if (infixExpression.getOperator() != Token.METHOD) { super.setImage(AstRoot.operatorToString(infixExpression.getOperator())); } } diff --git a/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/JsTreeDumpTest.java b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/JsTreeDumpTest.java index 849cc1f657..69bc444437 100644 --- a/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/JsTreeDumpTest.java +++ b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/JsTreeDumpTest.java @@ -40,4 +40,10 @@ public class JsTreeDumpTest extends BaseTreeDumpTest { public void templateStrings() { doTest("templateStrings"); } + + @Test + public void issue3948() { + // https://github.com/pmd/pmd/issues/3948 + doTest("issue3948"); + } } diff --git a/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.js b/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.js new file mode 100644 index 0000000000..b3e5490860 --- /dev/null +++ b/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.js @@ -0,0 +1,3 @@ +x = { + init() { } +}; diff --git a/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.txt b/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.txt new file mode 100644 index 0000000000..897cbce9ae --- /dev/null +++ b/pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/issue3948.txt @@ -0,0 +1,9 @@ ++- AstRoot + +- ExpressionStatement + +- Assignment + +- Name + +- ObjectLiteral + +- ObjectProperty + +- Name + +- FunctionNode + +- Block