Commit Graph

100 Commits

Author SHA1 Message Date
Aggelos Biboudis
1733d2ea24 8303374: Implement JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Co-authored-by: Gavin Bierman <gbierman@openjdk.org>
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Raffaello Giulietti <rgiulietti@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: vromero, jlahoda
2024-01-31 14:18:13 +00:00
Adam Sotona
2b00ac0d02 8308753: Class-File API transition to Preview
Reviewed-by: ihse, mchung, vromero
2023-12-04 07:07:57 +00:00
Aggelos Biboudis
54957ac55f 8312560: Annotation on Decomposed Record Component in Enhanced For Loop Fails Compilation
Reviewed-by: jlahoda
2023-12-01 14:15:38 +00:00
Aggelos Biboudis
4ba94ef69e 8320145: Compiler should accept final variable in Record Pattern
Reviewed-by: jlahoda
2023-12-01 07:13:39 +00:00
Jan Lahoda
541ff7149f 8318144: Match on enum constants with body compiles but fails with MatchException
Reviewed-by: liach, vromero
2023-11-07 12:05:58 +00:00
Aggelos Biboudis
36de19d462 8317048: VerifyError with unnamed pattern variable and more than one components
Reviewed-by: jlahoda
2023-11-01 13:38:10 +00:00
Aggelos Biboudis
c9d23c3940 8315532: Compiler Implementation for Unnamed Variables & Patterns
8317221: Implementation for javax.lang.model for Unnamed Variables & Patterns

Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Co-authored-by: Gavin Bierman <gbierman@openjdk.org>
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Joe Darcy <darcy@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: jlahoda, mcimadamore
2023-10-30 10:28:48 +00:00
Aggelos Biboudis
5ca1beb30e 8317300: javac erroneously allows "final" in front of a record pattern
Reviewed-by: jlahoda
2023-10-17 12:57:25 +00:00
Aggelos Biboudis
15588e08ed 8314578: Non-verifiable code is emitted when two guards declare pattern variables in colon-switch
Reviewed-by: vromero
2023-10-17 12:51:57 +00:00
Qing Xiao
741ae06c55 8313613: Use JUnit in langtools/lib tests
Reviewed-by: cstein, asotona
2023-10-16 17:14:34 +00:00
Adam Sotona
ca747f09b6 8315678: Classfile API ConstantPool::entryCount and ConstantPool::entryByIndex methods are confusing
Reviewed-by: briangoetz
2023-09-14 18:30:39 +00:00
Aggelos Biboudis
3b0a6d2a68 8314226: Series of colon-style fallthrough switch cases with guards compiled incorrectly
Reviewed-by: mcimadamore, vromero
2023-09-13 15:09:01 +00:00
Qing Xiao
8f7e29b2cd 8313422: test/langtools/tools/javac 144 test classes uses com.sun.tools.classfile library
Reviewed-by: asotona
2023-09-07 15:37:25 +00:00
Aggelos Biboudis
81f8c57e4a 8314632: Intra-case dominance check fails in the presence of a guard
Reviewed-by: vromero
2023-09-07 12:51:37 +00:00
Jan Lahoda
c386091734 8312984: javac may crash on a record pattern with too few components
Reviewed-by: vromero
2023-08-03 08:37:15 +00:00
Jan Lahoda
1f81e5b19e 8312229: Crash involving yield, switch and anonymous classes
Reviewed-by: vromero
2023-07-26 09:44:50 +00:00
Jan Lahoda
a4412166ec 8311815: Incorrect exhaustivity computation
Reviewed-by: vromero
2023-07-17 08:19:51 +00:00
Jan Lahoda
bbb7ce5137 8311038: Incorrect exhaustivity computation
Reviewed-by: vromero
2023-07-14 08:21:48 +00:00
Jan Lahoda
01623f6a57 8310133: Effectivelly final condition not enforced in guards for binding variables from the same case
Reviewed-by: vromero
2023-06-21 09:16:12 +00:00
Jan Lahoda
a15db1a56c 8302865: Illegal bytecode for break from if with instanceof pattern matching condition
Reviewed-by: vromero
2023-06-21 09:15:48 +00:00
Aggelos Biboudis
32243ef47d 8310128: Switch with unnamed patterns erroneously non-exhaustive
Reviewed-by: vromero, jlahoda
2023-06-16 07:03:28 +00:00
Jan Lahoda
408cadb351 8309467: Pattern dominance should be adjusted
Reviewed-by: vromero
2023-06-12 08:15:53 +00:00
Jan Lahoda
05fb6c6648 8309336: Incorrect switch in enum not reported properly
Reviewed-by: vromero
2023-06-05 06:25:00 +00:00
Aggelos Biboudis
8007599756 8309093: Underscore with brackets
Reviewed-by: jlahoda
2023-06-02 06:14:57 +00:00
Aggelos Biboudis
4f3a95af2f 8309054: Parsing of erroneous patterns succeeds
Reviewed-by: jlahoda
2023-05-31 09:37:58 +00:00
Aggelos Biboudis
4500bb7a67 8308727: Compiler should accept final unnamed variables in try-with-resources
Reviewed-by: jlahoda
2023-05-25 08:10:02 +00:00
Aggelos Biboudis
8aa50288a1 8302344: Compiler Implementation for Unnamed patterns and variables (Preview)
8307444: java.lang.AssertionError when using unnamed patterns
8307482: Compiler should accept var _ in nested patterns in switch case
8307007: Implementation for javax.lang.model for unnamed variables (Preview)
8308312: Compiler should fail when a local variable declaration does not include an Identifier and does not have an initializer
8308309: Compiler should accept mixed masked and unmasked variables in lambda parameters

Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: vromero, darcy
2023-05-22 08:52:36 +00:00
Jan Lahoda
eaa80ad08c 8300543: Compiler Implementation for Pattern Matching for switch
8300545: Compiler Implementation for Record Patterns

Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: vromero, mcimadamore
2023-05-22 04:24:06 +00:00
Jan Lahoda
2aec910ea4 8304883: Record Deconstruction causes bytecode error
Reviewed-by: vromero
2023-04-05 10:29:22 +00:00
Jan Lahoda
138cdc9283 8304694: Runtime exception thrown when break stmt is missing
Reviewed-by: vromero
2023-03-27 15:01:45 +00:00
Jan Lahoda
dc55a7fc87 8302202: Incorrect desugaring of null-allowed nested patterns
Reviewed-by: vromero
2023-02-17 12:55:47 +00:00
Aggelos Biboudis
3b05a94c36 8301858: Verification error when compiling switch with record patterns
Reviewed-by: vromero
2023-02-09 16:03:34 +00:00
Archie L. Cobbs
8c01b6e66b 8221580: Confusing diagnostic for assigning a static final field in a constructor
Reviewed-by: vromero
2023-02-06 18:22:22 +00:00
Jesper Wilhelmsson
fc9f8baf56 Merge 2023-01-18 23:29:12 +00:00
Jan Lahoda
c1b4212a53 8300195: Fall-through issue occurs when using record pattern in switch statements
Reviewed-by: vromero
2023-01-18 10:43:53 +00:00
Archie L. Cobbs
382fe51b6d 8163229: several regression tests have a main method that is never executed
Reviewed-by: vromero
2023-01-17 04:43:40 +00:00
Jan Lahoda
cf63f2e3ea 8298184: Incorrect record component type in record patterns
Reviewed-by: vromero
2022-12-07 12:03:50 +00:00
Jan Lahoda
2300ed458d 8291769: Translation of switch with record patterns could be improved
Reviewed-by: vromero
2022-12-05 12:04:23 +00:00
Aggelos Biboudis
2cb64a7557 8294943: Implement record patterns in enhanced for
8296802: Parse errors when deconstructing a record using the enhanced for loop of JEP 432

Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: mcimadamore, vromero
2022-12-01 12:40:09 +00:00
Jan Lahoda
b60cce6f3b 8297118: Change IncompatibleClassChangeError to MatchException for exhaustive switch statements and switch expressions
Reviewed-by: vromero
2022-12-01 10:51:57 +00:00
Jan Lahoda
756dd5bb0d 8294942: Compiler implementation for Record Patterns (Second Preview)
8294945: Compiler implementation for Pattern Matching for switch (Fourth Preview)

Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: mcimadamore, vromero
2022-12-01 08:02:40 +00:00
Joe Darcy
e2269fd2ca 8296968: Update langtools tests to use @enablePreview
Reviewed-by: sundar, jjg
2022-11-17 00:49:53 +00:00
Jan Lahoda
7bc9692a51 8294670: Enhanced switch statements have an implicit default which does not complete normally
Reviewed-by: vromero
2022-10-20 15:21:26 +00:00
Jan Lahoda
0be2b2c2f1 8292756: java.lang.AssertionError at at jdk.compiler/com.sun.tools.javac.code.Scope$ScopeImpl.leave(Scope.java:386)
Reviewed-by: vromero
2022-09-22 14:33:07 +00:00
Aggelos Biboudis
1169a15936 8291657: Javac assertion when compiling a method call with switch expression as argument
Reviewed-by: jlahoda
2022-09-14 06:48:01 +00:00
Aggelos Biboudis
9444a081cc 8290709: Incorrect dominance error for unconditional pattern vs. null
Reviewed-by: jlahoda
2022-09-01 16:09:03 +00:00
Joe Darcy
cc2861a993 8290901: Reduce use of -source in langtools tests
Reviewed-by: jjg
2022-07-29 17:35:22 +00:00
Jesper Wilhelmsson
c79baaa811 Merge 2022-07-11 16:15:49 +00:00
Aggelos Biboudis
bba6be79e0 8269674: Improve testing of parenthesized patterns
Reviewed-by: jlahoda
2022-07-11 11:13:55 +00:00
Jan Lahoda
25f4b04365 8289894: A NullPointerException thrown from guard expression
Reviewed-by: vromero
2022-07-11 08:59:32 +00:00