RFR: 8312619: Strange error message when switching over long

Jan Lahoda jlahoda at openjdk.org
Tue Jul 25 14:45:07 UTC 2023


For code like:

public class SelectorTypeNotAllowed {
    private void noLong(long sel) {
        switch (sel) {
            case 0L -> {}
            default -> {}
        }
    }
}


which is invalid (due to the `long` selector) produces this compile-time error:

/tmp/SelectorTypeNotAllowed.java:4: error: constant label of type long is not compatible with switch selector type long
            case 0L -> {}
                 ^
1 error


This is a confusing error message. The proposal here is to change the error message to:

/tmp/SelectorTypeNotAllowed.java:3: error: selector type long is not allowed
        switch (sel) {
               ^
1 error

-------------

Commit messages:
 - 8312619: Strange error message when switching over long

Changes: https://git.openjdk.org/jdk/pull/15020/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15020&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8312619
  Stats: 50 lines in 4 files changed: 43 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/15020.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15020/head:pull/15020

PR: https://git.openjdk.org/jdk/pull/15020


More information about the compiler-dev mailing list