-
- Notifications
You must be signed in to change notification settings - Fork 3.9k
Closed
Description
child of #14890
I have read check documentation: https://checkstyle.org/checks/coding/missingswitchdefault.html#MissingSwitchDefault
I have downloaded the latest checkstyle from: https://checkstyle.org/cmdline.html#Download_and_Run
I have executed the cli and showed it below, as cli describes the problem better than 1,000 words
PS D:\CS\test> javac src/RecordPatterns.java --enable-preview --source 22 PS D:\CS\test> cat src/RecordPatterns.java import java.util.List; public class RecordPatterns { sealed interface I permits C, D { } final class C implements I { } final class D implements I { } record Pair<T>(T x, T y) { } void test() { C c = new C(); D d = new D(); Pair<I> p2 = new Pair<>(c, d); // exhaustiveness check by the compiler switch (p2) { // violation ?? case Pair<I>(I i, C j) -> System.out.println("Pair (C|D, C)"); case Pair<I>(I i, D j) -> System.out.println("Pair (C|D, D)"); } } public static void main(String[] args) { new RecordPatterns().test(); } } PS D:\CS\test> cat config.xml <?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> <module name="Checker"> <property name="charset" value="UTF-8"/> <module name="TreeWalker"> <module name="MissingSwitchDefault"/> </module> </module> PS D:\CS\test> java -jar checkstyle-10.14.2-all.jar -c config.xml src/RecordPatterns.java Starting audit... [ERROR] D:\CS\test\src\RecordPatterns.java:15:9: switch without "default" clause. [MissingSwitchDefault] Audit done. Checkstyle ends with 1 errors.Describe what you expect in detail.
I expect no violation here since there is an exhaustiveness Check by the compiler. This means that all possible inputs must be covered. So there is no need for default