From a720616e2f80c81364026e500c875306cfee92ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Fri, 25 Jun 2021 17:21:55 +0200 Subject: [PATCH] Move to codestyle other 'unnecessary*' rule are there --- .../UnnecessaryConversionRule.java | 6 ++-- .../resources/category/java/bestpractices.xml | 31 ------------------- .../resources/category/java/codestyle.xml | 30 ++++++++++++++++++ .../UnnecessaryConversionTest.java | 4 +-- .../xml/UnnecessaryConversion.xml | 5 ++- 5 files changed, 39 insertions(+), 37 deletions(-) rename pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/{bestpractices => codestyle}/UnnecessaryConversionRule.java (96%) rename pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/{bestpractices => codestyle}/UnnecessaryConversionTest.java (79%) rename pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/{bestpractices => codestyle}/xml/UnnecessaryConversion.xml (97%) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/bestpractices/UnnecessaryConversionRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/codestyle/UnnecessaryConversionRule.java similarity index 96% rename from pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/bestpractices/UnnecessaryConversionRule.java rename to pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/codestyle/UnnecessaryConversionRule.java index d6f1f8f422..d8803369da 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/bestpractices/UnnecessaryConversionRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/codestyle/UnnecessaryConversionRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.java.rule.bestpractices; +package net.sourceforge.pmd.lang.java.rule.codestyle; import static net.sourceforge.pmd.util.CollectionUtil.setOf; @@ -131,9 +131,9 @@ public class UnnecessaryConversionRule extends AbstractJavaRulechainRule { boolean simpleConv = isReferenceSubtype(sourceType, conversionInput); final String reason; - if (simpleConv && conversionInput.unbox() == conversionOutput) { + if (simpleConv && conversionInput.unbox().equals(conversionOutput)) { reason = "explicit unboxing"; - } else if (simpleConv && conversionInput.box() == conversionOutput) { + } else if (simpleConv && conversionInput.box().equals(conversionOutput)) { reason = "explicit boxing"; } else if (sourceType.equals(conversionOutput)) { reason = "boxing of boxed value"; diff --git a/pmd-java/src/main/resources/category/java/bestpractices.xml b/pmd-java/src/main/resources/category/java/bestpractices.xml index 8506686bf4..645c321a74 100644 --- a/pmd-java/src/main/resources/category/java/bestpractices.xml +++ b/pmd-java/src/main/resources/category/java/bestpractices.xml @@ -1358,37 +1358,6 @@ class Foo{ - - - - Reports explicit conversions that may safely be removed, either because - they would implicitly take place (eg widening a `byte` to an `int`), or - because they're semantically a noop (eg unboxing a value to rebox it immediately). - - This handles widening conversion between primitives, boxing and unboxing - conversions (which since Java 5 are inserted by the compiler implicitly), - and unnecessary casts. - - 3 - - - - + + + Reports explicit conversions that may safely be removed, either because + they would implicitly take place (eg widening a `byte` to an `int`), or + because they're semantically a noop (eg unboxing a value to rebox it immediately). + + This handles widening conversion between primitives, boxing and unboxing + conversions (which since Java 5 are inserted by the compiler implicitly). + Unnecessary casts that command a conversion are reported by {% rule UnnecessaryCast %} + instead. + + 3 + + + + Unnecessary (primitive -> primitive) casts - 0 + 1 + + Unnecessary explicit boxing +