switch exhaustiveness check not working within deconstruction pattern
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
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
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/vscode-java-debug
-
ai-triaged enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
microsoft/vscode-java-debug#1689 · 2 commenti ·
-
ai-triaged bug
microsoft/vscode-java-debug#1666 · 1 commento · 1 assegnatario ·
-
ai-triaged bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
microsoft/vscode-java-debug#1658 · 1 commento ·
-
ai-triaged enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
microsoft/vscode-java-debug#1628 · 3 commenti ·
-
Feature support. Apertaai-triaged enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
microsoft/vscode-java-debug#1616 · 1 commento ·
Tutte le issue di microsoft/vscode-java-debug
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
fil-donadoni/tolaria#4409 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
corsairdev/corsair#1764 ·