diffplug / diffplug/spotless

shortenFullyQualifiedTypes does not shorten all the fully qualified types

Aperta
#3,039 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
5.6k
Fork
559
Merge medio
1g 13h
PR unite (30g)
34

Descrizione

## 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start with the `shortenFullyQualifiedTypes` step in the spotless-gradle-plugin and reproduce the two Java examples from the issue using version 8.10.1. Trace why fully qualified references such as `ManagementFactory` and `pkg.models.CustomTypeProperty.TypeEnum` remain unchanged, then verify that all fully qualified types are shortened and the resulting code compiles.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
build-system, tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
68/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.