Skip to content
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

Fix opaque types leaking rhs when inlined and found in type params (and a related stale symbol issue) #22654

Closed

Conversation

jchyb
Copy link
Contributor

@jchyb jchyb commented Feb 24, 2025

This PR fixes the 2 issues found in #20449, split into 2 commits.

The first commit fixes the stale symbol related issue found if the files from the issue minimization are compiled together. After suspending and retrying compilation, the classDefs that are defined directly in packages previously would sometimes not have companion objects regenerated, instead relying on the stale symbols from the previous run, causing them not to to pass the reallyExists check when looking for a specific ref. Now we make sure to go through lastKnwonDenotation, since the current one may not exists and may not point us to a Module flag when checking if to regenerate.

The second commit fixes the opaque type alias rhs leaking in a macro. That was caused by building proxies for all parts of the type, including type arguments to opaque types - from the perspective of a type like Object[OpaqueType], the opaque type rhs should not be visible.

@jchyb jchyb changed the title Fix i20449 stale and leaking opaque Fix opaque types leaking rhs when inlined and found in type params (and a related stale symbol issue) Feb 24, 2025
@jchyb jchyb force-pushed the fix-i20449-stale-and-leaking-opaque branch from 40f57f2 to 0469796 Compare February 24, 2025 15:28
@jchyb jchyb closed this Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants