switch exhaustiveness check not working within deconstruction pattern
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Tái hiện switch lồng nhau với deconstruction-pattern từ issue trong môi trường VS Code và Java được liệt kê, đồng thời so sánh chẩn đoán của extension với javac thuần túy. Truy vết nơi chẩn đoán “A switch expression should have a default case” được tạo ra. Được coi là hoàn tất khi ví dụ đầy đủ nhánh biên dịch mà không có chẩn đoán đó, trong khi các switch thực sự không đầy đủ nhánh vẫn báo cáo chẩn đoán này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 591
- Fork
- 429
- Merge trung bình
- 1 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 19
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/vscode-java-debug
-
ai-triaged enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
microsoft/vscode-java-debug#1689 · 2 bình luận ·
-
ai-triaged bug
microsoft/vscode-java-debug#1666 · 1 bình luận · 1 người được giao ·
-
ai-triaged bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
microsoft/vscode-java-debug#1658 · 1 bình luận ·
-
ai-triaged enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
microsoft/vscode-java-debug#1628 · 3 bình luận ·
-
Feature support. Đang mởai-triaged enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
microsoft/vscode-java-debug#1616 · 1 bình luận ·
Tất cả issue của microsoft/vscode-java-debug
Issue tương tự
-
[Bug]: Discord Activity titles with emoji are rejected as over 80 characters when they are not Đang mởclawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
ZCode 3.14.3 に対応する Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
supermomonga/zcode-acp#24 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
growthbook/growthbook#7100 ·
-
triage
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100