From dd8b25802d6ea623c42fca160e3f74e79783a0dc Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Mon, 29 Nov 2021 09:37:27 +0100 Subject: [PATCH] [java] Update rule MethodWithSameNameAsEnclosingClass Converted the rule into a simle XPath rule --- .ci/files/all-java.xml | 2 +- ...ethodWithSameNameAsEnclosingClassRule.java | 25 ------------------- .../resources/category/java/errorprone.xml | 11 +++++++- ...ethodWithSameNameAsEnclosingClassTest.java | 1 - .../MethodWithSameNameAsEnclosingClass.xml | 1 + 5 files changed, 12 insertions(+), 28 deletions(-) delete mode 100644 pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MethodWithSameNameAsEnclosingClassRule.java diff --git a/.ci/files/all-java.xml b/.ci/files/all-java.xml index 4934c62336..8159636bb7 100644 --- a/.ci/files/all-java.xml +++ b/.ci/files/all-java.xml @@ -233,7 +233,7 @@ - + diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MethodWithSameNameAsEnclosingClassRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MethodWithSameNameAsEnclosingClassRule.java deleted file mode 100644 index 9b470c462a..0000000000 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MethodWithSameNameAsEnclosingClassRule.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.lang.java.rule.errorprone; - -import java.util.List; - -import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration; -import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclarator; -import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; - -public class MethodWithSameNameAsEnclosingClassRule extends AbstractJavaRule { - - @Override - public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - List methods = node.findDescendantsOfType(ASTMethodDeclarator.class); - for (ASTMethodDeclarator m : methods) { - if (m.hasImageEqualTo(node.getImage())) { - addViolation(data, m); - } - } - return super.visit(node, data); - } -} diff --git a/pmd-java/src/main/resources/category/java/errorprone.xml b/pmd-java/src/main/resources/category/java/errorprone.xml index 5fe1013003..d78a19c96f 100644 --- a/pmd-java/src/main/resources/category/java/errorprone.xml +++ b/pmd-java/src/main/resources/category/java/errorprone.xml @@ -2180,12 +2180,21 @@ public class Foo extends TestCase { language="java" since="1.5" message="Classes should not have non-constructor methods with the same name as the class" - class="net.sourceforge.pmd.lang.java.rule.errorprone.MethodWithSameNameAsEnclosingClassRule" + class="net.sourceforge.pmd.lang.rule.XPathRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_errorprone.html#methodwithsamenameasenclosingclass"> Non-constructor methods should not have the same name as the enclosing class. 3 + + + + + + + bad 1 + 2