redhat-developer / redhat-developer/vscode-java

Return null through ternary operator does not give Type mismatch error

Offen
#436 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug compile upstream
Vorherrschende Sprache
TypeScript
Sterne
2.3k
Forks
546
Ø Merge
20 Std. 1 Min.
Gemergte PRs (30 T.)
11

Beschreibung

Returning null through a ternary operator does not give Type mismatch error. It should.

Code 1:

public double getValue() {
    return null;
}

null is error-underlined with the error [Java] Type mismatch: cannot convert from null to double.
image

Code 2:

public double getValue() {
    return value == null ? null : Double.parseDouble(value);
}

No errors shown on the returned null.
image

Code 3:

public double getValue() {
    if (value == null)
        return null;
    else
        return Double.parseDouble(value);
}

Same error:
image

Environment
  • Operating System: Windows 10 x64
  • JDK version: 8
  • Visual Studio Code version: 1.20.0
  • Java extension version: 0.18.1
Steps To Reproduce
  1. Make code shown.
  2. Look for error.
Current Result

Code 1 & 3 shows error. Code 2 doesn't.

Expected Result

All Code blocks should show error.

Additional Information

Please let me know if you need any logs or anything.

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

Beginne damit, Code 1, Code 2 und Code 3 in der Java-Erweiterung zu reproduzieren, und vergleiche die Diagnosen für die ternäre und die if/else-Form. Verfolge, wie die Java-Sprachunterstützung Rückgabeausdrücke analysiert, und überprüfe anschließend, dass der ternäre Fall denselben Typkonflikt wie die anderen Beispiele meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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