Affects PMD Version: 6.18.0
Rule: UnnecessaryFullyQualifiedName
Description:UnnecessaryFullyQualifiedName
shouldn't apply on right-hand side of instanceof
Code Sample demonstrating the issue:
Given
package de.richtercloud.pmd.importt.qualifier.clazz; public class SomeOtherClass { public static void someMethod() { System.out.println("someMethod"); } protected class SomeInnerClass { public void alsoDoSomething() { System.out.println("alsoDoSomething"); } } }
and
package de.richtercloud.pmd.importt.qualifier.clazz; import static de.richtercloud.pmd.importt.qualifier.clazz.SomeOtherClass.*; public class SomeClass { public void theMethod() { someMethod(); Object someObject = new Object(); if(someObject instanceof SomeOtherClass.SomeInnerClass) { System.out.println(""); } } }
PMD fails due to
[INFO] PMD Failure: de.richtercloud.pmd.importt.qualifier.clazz.SomeClass:10 Rule:UnnecessaryFullyQualifiedName Priority:4 Unnecessary use of fully qualified name 'SomeOtherClass.SomeInnerClass' due to existing static import 'de.richtercloud.pmd.importt.qualifier.clazz.SomeOtherClass.*'.
This failure is incorrect because omitting SomeOtherClass.
from instanceof SomeOtherClass.SomeInnerClass
causes the code to become uncompilable because the inner class name can't be resolved.
An SSCCE is provided at https://gitlab.com/krichter/pmd-import-qualifier-class.
Running PMD through: Maven
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4