typetools / typetools/checker-framework

Array element type should not be inferred as @Poly*

Offen
#653 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Java
Sterne
1.1k
Forks
440
Ø Merge
1 T. 12 Std.
Gemergte PRs (30 T.)
134

Beschreibung

Consider the code in file checker-framework/checker/tests/nullness/Issue653.java.

An expression

  new String[] {myNonNullString}

is inferred to be of type

  @PolyNull String []

when used in a context where that type is expected.

The expression should be inferred to be of type

  @NonNull String []

instead.

More generally, @PolyNull should not be considered a type itself -- it's really a type variable.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit checker-framework/checker/tests/nullness/Issue653.java und untersuchen Sie, wie der Array-Initialisierer inferiert wird, wenn er myNonNullString enthält. Verfolgen Sie die Behandlung von @PolyNull als Typvariable im relevanten Code zur Typinferenz. Erledigt ist dies, wenn der Ausdruck in diesem Kontext als @NonNull String[] statt als @PolyNull String[] inferiert wird und die Regression durch den Issue-Test abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
compilers, devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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