Skip to content

Java: Add TypeAccess predicate for finding out if access is fully qualified #3649

Open
@Marcono1234

Description

@Marcono1234

Description of the issue
Would it be possible to add a predicate to TypeAccess or create a subclass1, e.g. ClassOrInterfaceTypeAccess, with a predicate which allows detecting if the type access is fully qualified, e.g. List<String> list = new java.util.ArrayList<>();?

The main use case would be to detect cases where there is no need to fully qualify a type, either because the simple name is already available or because an import could be added.

Though maybe the use case for such a predicate would be too specific and does not justify this?

Note that it is currently possible to find this out in an error-prone way by checking if the length in the source (as reported by getLocation) matches the expected simple name length. See a not very well working example implementation here.


1: Separate class is probably needed because TypeAccess also covers primitives and they are always fully qualified according to JLS so adding the predicate to TypeAccess would not be that useful because you would always have to check that the type is not a primitive when using that predicate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    JavaquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions