Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

switch exhaustiveness check not working within deconstruction pattern

Aperta
#1,260 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java, vscode
Ambito
devtools

Direzione di ricerca

Riproduci lo switch annidato con pattern di deconstruction dell’issue nell’ambiente VS Code e Java indicato e confronta la diagnostica dell’estensione con javac puro. Traccia dove viene prodotto il diagnostico “A switch expression should have a default case”. Il lavoro è completato quando l’esempio esaustivo viene compilato senza questo diagnostico, mentre gli switch realmente non esaustivi continuano a segnalarlo.

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

Descrizione

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.

Lingua principale
TypeScript
Stelle
591
Fork
429
Merge medio
1g 9h
PR unite (30g)
19

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/vscode-java-debug

Tutte le issue di microsoft/vscode-java-debug

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.