-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8337795: Type annotation attached to incorrect type during class reading #20460
Conversation
👋 Welcome back cushon! A progress list of the required criteria for merging this PR into |
@cushon This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks sensible
We can enable the test on appropriate JDK versions once openjdk/jdk#20460 lands. #1011
/integrate |
Going to push as commit 8d08314.
Your commit was automatically rebased without conflicts. |
This change fixes a bug in the logic for adding type annotations to types during class reading.
The implementation searched for contained types that type annotations applied to, and then separately rewrote the type to add the annotations using
StructuralTypeMapping
, relying on the object identity ofType
instances to keep track of them between the two passes. This produced incorrect results if the same type (with the same identity) appeared multiple times as a contained type.This fix merges the two passes into a single visitor that both locates annotated contained types, and rewrites them to add the annotations. This requires duplicating similar logic to
StructuralTypeMapping
, which seems unavoidable.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/20460/head:pull/20460
$ git checkout pull/20460
Update a local copy of the PR:
$ git checkout pull/20460
$ git pull https://git.openjdk.org/jdk.git pull/20460/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 20460
View PR using the GUI difftool:
$ git pr show -t 20460
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/20460.diff
Webrev
Link to Webrev Comment