-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8333377: Migrate Generic Signature parsing to ClassFile API #19281
base: master
Are you sure you want to change the base?
Conversation
…new-generic-info
…new-generic-info
👋 Welcome back liach! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
…new-generic-info
…new-generic-info
…new-generic-info
|
I think I'll need to be one of the reviews on this, but don't anticipate being able to review it before JDK 23 rampdown. Therefore, I think this would be appropriate to be targeted to JDK 24. |
Indeed, I put the JBS issue to target release 24. I believe given the potential behavioral changes, rushing into release 23 is a risky choice. (the 4 new tests can target 23 in a separate patch, but they require removal of a few redundant assertions in old generic code) |
…new-generic-info
Core reflection's generic signature parsing uses an ancient library with outdated visitor pattern on a tree model and contains unnecessary boilerplates. This is a duplication of ClassFile API's signature model. We should just move to ClassFile API, which is more throughoutly tested as well.
To ensure compatibility, new tests are added to ensure consistent behavior when encountering malformed signatures or signatures with missing types. The reflective objects have been preserved and the only change is that lazy expansion now happens from CF objects, to reduce compatibility risks.
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/19281/head:pull/19281
$ git checkout pull/19281
Update a local copy of the PR:
$ git checkout pull/19281
$ git pull https://git.openjdk.org/jdk.git pull/19281/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 19281
View PR using the GUI difftool:
$ git pr show -t 19281
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/19281.diff
Webrev
Link to Webrev Comment