Add patterns module: pattern matching from JDK 21 to 27

Type, record and primitive patterns, guards, sealed exhaustiveness, MatchException via separate compilation, and eight captured transcripts.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01TF9JWFvJSNm6HVzswzZU5a
This commit is contained in:
Claude
2026-09-24 11:50:40 +00:00
parent 96b25c8fc4
commit bc91b9c8d0
36 changed files with 736 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
$ javac src/NullCase.java && java NullCase (25.0.4.1+1-LTS)
without case null: NullPointerException
with case null: null!
case null, default: null or something else
instanceof with null: false
$ javac src/NullCase.java && java NullCase (27+35)
without case null: NullPointerException
with case null: null!
case null, default: null or something else
instanceof with null: false
$ javac src/Unnamed.java && java Unnamed (21.0.10+7-Ubuntu-124.04)
src/Unnamed.java:9: error: unnamed variables are a preview feature and are disabled by default.
case Circle _ -> "round"; // the type matters, the value does not
^
(use --enable-preview to enable unnamed variables)
1 error
$ javac src/Unnamed.java && java Unnamed (25.0.4.1+1-LTS)
round angular
5
$ javac src/Unnamed.java && java Unnamed (27+35)
round angular
5