Support certain Java libraries compiled on JDK 21 #10675
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This makes certain Java libraries compiled using Java 21 usable from Scala — libraries that use
switch
in a certain way.The fix is to our classfile reader, to recognize
CONSTANT_Dynamic
when it appears in the constant pool.Fixes scala/bug#12936
Implementation notes
Previous PR in this vein, for comparison: #8289
I verified that
partest test/files/pos/t12396
was failing locally on JDK 21 but now passes.PR validation runs on Java 8, so it will not run the test, but it will run at https://github.com/scala/scala/actions after the PR is merged; our GitHub Actions config has
java: [8, 11, 17, 21]