Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

switch exhaustiveness check not working within deconstruction pattern

Offen
#1,260 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java, vscode
Bereich
devtools

Rechercherichtung

Reproduziere den verschachtelten Deconstruction-Pattern-Switch aus dem Issue in der aufgeführten VS Code- und Java-Umgebung und vergleiche die Extension-Diagnose mit reinem javac. Verfolge, wo die Diagnose „A switch expression should have a default case“ erzeugt wird. Als erledigt gilt die Aufgabe, wenn das exhaustive Beispiel ohne diese Diagnose kompiliert wird, während tatsächlich nicht exhaustive Switches sie weiterhin melden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

ai-triaged bug compile

Build fails on missing default case, even though switch is exhaustive.

Environment
  • Operating System: Windows 10
  • JDK version: 19
  • Visual Studio Code version: 1.73.1
  • Java extension version: 1.12.0
  • Java Debugger extension version: 0.46.0
Steps To Reproduce

make (exhaustive) switch expression with nested deconstruction pattern
build fails -> "Add default case"

Example:

package dev.redio;

import static dev.redio.Main.Activity.*;

public class Main {

    public static void main(String[] args) {
        record Pair(boolean weekend, Activity activity) {}
        var pair = new Pair(true, new Sleeping(8));
        var msg = switch (pair) {   // <- A switch expression should have a default caseJava(1073743531)
            case Pair(boolean b, Sleeping s) -> "3";
            case Pair(boolean b, Skiing s) -> "4";
            case Pair(boolean b, Coding c) -> "5";
        };
        
        System.out.println(msg);
    }

    sealed interface Activity {
        record Sleeping(int hours) implements Activity {}
        record Skiing(String resort) implements Activity {}
        record Coding() implements Activity {}
    }
    
}
Current Result

Build Error (A switch expression should have a default caseJava(1073743531))

Expected Result

Build Success(Switch is exhaustive since all nested deconstruction possibilities are covered)

Additional Informations

Compiles with pure javac without errors
Intended and correct syntax confirmed by member of development team of the feature.

Vorherrschende Sprache
TypeScript
Sterne
591
Forks
429
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
19

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/vscode-java-debug

Alle Issues in microsoft/vscode-java-debug

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

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