diff --git a/docs/pages/pmd/rules/apex/empty.md b/docs/pages/pmd/rules/apex/empty.md index 7ff4634022..c185ad1fae 100644 --- a/docs/pages/pmd/rules/apex/empty.md +++ b/docs/pages/pmd/rules/apex/empty.md @@ -144,3 +144,33 @@ public class Foo { ``` +## EmptyStatementBlock + +**Since:** PMD 6.0.0 + +**Priority:** Medium (3) + +Empty block statements serve no purpose and should be removed. + +``` +//Method/ModifierNode[@Abstract!='true' and ../BlockStatement[count(*) = 0]] +| //Method/BlockStatement//BlockStatement[count(*) = 0]``` + +**Example(s):** + +``` java +public class Foo { + public void setBar(int bar) { + // empty, not allowed + } + + public abstract void foo() { + // this is allowed + } +} +``` + +**Use this rule by referencing it:** +``` xml + +``` diff --git a/pmd-apex/src/main/resources/rulesets/apex/empty.xml b/pmd-apex/src/main/resources/rulesets/apex/empty.xml index 1fc42ae75c..497d065fe1 100644 --- a/pmd-apex/src/main/resources/rulesets/apex/empty.xml +++ b/pmd-apex/src/main/resources/rulesets/apex/empty.xml @@ -154,4 +154,39 @@ public void bar(Integer a, Integer b) { + + + +Empty block statements serve no purpose and should be removed. + + 3 + + + + + + + + + + + diff --git a/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml b/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml index 89fb089fae..e820675888 100644 --- a/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml +++ b/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml @@ -361,4 +361,13 @@ + + 3 + + + + + + + diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java index e84da1479e..3ece406df7 100644 --- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java +++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java @@ -16,5 +16,6 @@ public class EmptyRulesTest extends SimpleAggregatorTst { addRule(RULESET, "EmptyIfStmt"); addRule(RULESET, "EmptyTryOrFinallyBlock"); addRule(RULESET, "EmptyWhileStmt"); + addRule(RULESET, "EmptyStatementBlock"); } } diff --git a/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml new file mode 100644 index 0000000000..d0fd844c87 --- /dev/null +++ b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml @@ -0,0 +1,35 @@ + + + + + 1 + + + + + 0 + + +