A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/2029 below:

[java] UnnecessaryFullyQualifiedName false-positive for non-static nested classes · Issue #2029 · pmd/pmd · GitHub

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