diffplug / diffplug/spotless

shortenFullyQualifiedTypes does not shorten all the fully qualified types

Offen
#3,039 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.