switch exhaustiveness check not working within deconstruction pattern
还没有人认领这个 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
- 派生
- 429
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 19
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/vscode-java-debug 的其他 Issue
-
ai-triaged enhancement
难度 3/5 1-2 天 新手友好度 55/100
microsoft/vscode-java-debug#1689 · 2 条评论 ·
-
ai-triaged bug
microsoft/vscode-java-debug#1666 · 1 条评论 · 已指派 1 人 ·
-
ai-triaged bug
难度 3/5 1-2 天 新手友好度 48/100
microsoft/vscode-java-debug#1658 · 1 条评论 ·
-
ai-triaged enhancement
难度 4/5 3-5 天 新手友好度 45/100
microsoft/vscode-java-debug#1628 · 3 条评论 ·
-
Feature support. 未关闭ai-triaged enhancement
难度 5/5 一周以上 新手友好度 25/100
microsoft/vscode-java-debug#1616 · 1 条评论 ·
查看 microsoft/vscode-java-debug 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
难度 2/5 1-3 小时 新手友好度 75/100
fil-donadoni/tolaria#4409 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
corsairdev/corsair#1764 ·