switch exhaustiveness check not working within deconstruction pattern
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
在列出的 VS Code 和 Java 環境中重現 issue 中的巢狀解構模式 switch,並將擴充功能的診斷結果與純 javac 進行比較。追蹤「A switch expression should have a default case」診斷在哪裡產生。完成標準是:窮舉範例能夠在沒有該診斷的情況下建置,同時真正非窮舉的 switch 仍然回報該診斷。
由索引模型根據 Issue 內容生成。
描述
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.
- 主要語言
- TypeScript
- 星號
- 591
- 分支
- 431
- 平均合併
- 21 小時 35 分鐘
- 30 天內合併 PR
- 16
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/vscode-java-debug 的其他 Issue
-
java未關閉ai-triaged needs more info
難度 5/5 一週以上 新手友好度 1/100
microsoft/vscode-java-debug#1707 · 1 則留言 · 1 個 reaction ·
維護者通常 1 天內回覆
-
Stopping a Java Application with the debugger Stop button dos not work可能已有人在做 @chagong 於 8 天前認領。 未關閉ai-triaged bug
microsoft/vscode-java-debug#1705 · 1 則留言 · 1 個 reaction · 已指派 1 人 ·
維護者通常 1 天內回覆
-
ai-triaged enhancement
難度 3/5 1-2 天 新手友好度 55/100
microsoft/vscode-java-debug#1689 · 3 則留言 ·
維護者通常 1 天內回覆
-
Extension appends malformed string to PATH可能重新可做 @wenytang-ms 於 57 天前認領,目前沒有進行中的 PR。 未關閉ai-triaged bug
microsoft/vscode-java-debug#1666 · 1 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
-
ai-triaged bug
難度 3/5 1-2 天 新手友好度 48/100
microsoft/vscode-java-debug#1658 · 1 則留言 ·
維護者通常 1 天內回覆
查看 microsoft/vscode-java-debug 的全部 Issue
相似的 Issue
-
bot:ai-assisted status:untriaged
難度 2/5 1-3 小時 新手友好度 85/100
midnightntwrk/midnight-js#1424 ·
維護者通常 1 天內回覆
-
enhancement
難度 2/5 1-3 小時 新手友好度 68/100
mksglu/context-mode#1268 ·
維護者通常 5 天內回覆
-
Edit:未關閉check:failed streams:edit
難度 2/5 1-3 小時 新手友好度 60/100
維護者通常 1 天內回覆
-
[Table] reserveSelectedRowOnPaginate=false 时表头全选包含其他页数据可能已有人在做 @dvd233 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 75/100
Tencent/tdesign-react#4416 · 2 則留言 ·
維護者通常 1 天內回覆
-
area:widget bug
難度 2/5 1-3 小時 新手友好度 66/100
interledger/publisher-tools#894 ·
維護者通常 1 天內回覆