shortenFullyQualifiedTypes does not shorten all the fully qualified types
- Vorherrschende Sprache
- Java
- Sterne
- 5.6k
- Forks
- 559
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 43
Beschreibung
## Summary
`shortenFullyQualifiedTypes` shortens a fully-qualified reference into the simple name of a type declared in the same compilation unit. The result does not compile.
## Reproducer
`spotless-gradle-plugin` 8.10.1, with `shortenFullyQualifiedTypes` as one of the steps:
### Test example 1:
```java
import java.lang.management.BufferPoolMXBean;
import java.util.List;
public class ClassA
{
public void methodA()
{
final List pools = java.lang.management.ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class);
}
}
```
#### Actual behavior of example 1:
Type `java.lang.management.ManagementFactory` used in code is not shortened.
### Test example 2:
```java
public class classB {
final List connectionProps = List.of(new CustomTypeProperty().name("host")
.type(pkg.models.CustomTypeProperty.TypeEnum.STRING));
}
```
#### Actual behavior of example 2:
Type `pkg.models.CustomTypeProperty` used in code is not shortened.
## Expected behavior
All FQT should be shortened.
FYI @maxandersen
Beitragsleitfaden
Rechercherichtung
Beginne mit dem Schritt `shortenFullyQualifiedTypes` im spotless-gradle-plugin und reproduziere die beiden Java-Beispiele aus dem Issue mit Version 8.10.1. Verfolge, warum vollständig qualifizierte Referenzen wie `ManagementFactory` und `pkg.models.CustomTypeProperty.TypeEnum` unverändert bleiben, und überprüfe anschließend, dass alle vollständig qualifizierten Typen verkürzt werden und der resultierende Code kompiliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- build-system, tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 68/100