Skip to content

Enforce JLS §14.11.1 language-level rules for multi-pattern case labels#5010

Merged
jlerbsc merged 1 commit into
javaparser:masterfrom
jlerbsc:master
May 6, 2026
Merged

Enforce JLS §14.11.1 language-level rules for multi-pattern case labels#5010
jlerbsc merged 1 commit into
javaparser:masterfrom
jlerbsc:master

Conversation

@jlerbsc

@jlerbsc jlerbsc commented May 6, 2026

Copy link
Copy Markdown
Collaborator

Multiple patterns per case label (case A _, B _ ->) were introduced in
Java 22 (JEP 456). Two validation rules are added to enforce the spec:

  • noMultiPatternCaseLabels (Java1_0Validator): rejects multi-pattern case
    labels below Java 22, since the feature did not exist before.
  • noNamedVarsInMultiPatternCase (Java22Validator): rejects any case label
    that combines multiple patterns where at least one declares a named
    pattern variable (e.g. case String s, Integer _ ->), as required by
    JLS §14.11.1.
    Test cases cover all four scenarios: valid unnamed patterns, rejection
    below Java 22, and the two named-variable violations.

@jlerbsc jlerbsc merged commit d02b29f into javaparser:master May 6, 2026
31 of 32 checks passed
@jlerbsc jlerbsc added this to the next release milestone May 6, 2026
@jlerbsc jlerbsc added the PR: Added A PR that introduces new behaviour (e.g. functionality, tests) label May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Added A PR that introduces new behaviour (e.g. functionality, tests)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant