From 7bb4a76bcfa4b7acb8c0ff3ad0981a47fea545d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sun, 19 Sep 2021 23:15:35 +0200 Subject: [PATCH] Special case static methods --- .../pmd/lang/java/rule/design/LawOfDemeterRule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/LawOfDemeterRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/LawOfDemeterRule.java index 7240f1eb26..c2ac635f39 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/LawOfDemeterRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/LawOfDemeterRule.java @@ -113,7 +113,8 @@ public class LawOfDemeterRule extends AbstractJavaRulechainRule { // ie, pure data containers are "transparent" return isForeign(((ASTMethodCall) expr).getQualifier()); } - return true; + // static methods are taken to be construction methods. + return !((ASTMethodCall) expr).getMethodType().isStatic(); } else if (expr instanceof ASTNamedReferenceExpr) { DataflowResult dataflow = DataflowPass.getDataflowResult(expr.getRoot()); ReachingDefinitionSet reaching = dataflow.getReachingDefinitions((ASTNamedReferenceExpr) expr);