-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 #11861 - hash nested calls to inline definitions #12931
Conversation
091604e
to
1db60ab
Compare
Will this fix make it into Scala 3.0.2? |
@informarte You mean 3.0.3 (3.0.2 was already released) |
next release will be 3.1.0
Yes, for 3.1.0, I can go back and address the comments - we will see if the implementation is correct |
@bishabosha, @smarter, what are your plans for this PR? I see tests, I see a green build, I see comments that were addressed, so what keeps you from merging this fix? |
I just need to add some assertion tests and should be good to go |
I'm interested in seeing this land, since it would help me in my own compiler hacking. (Happy to help, even, if there's something I can do.) |
Hey @SethTisue, I will dedicate myself to this tomorrow - mostly the confusion comes from this comment - #12931 (comment) where I got an error from building - seemingly that incremental compilation might still be incorrect - the remaining work then is to add some assertions and maybe experiment to trigger the same error if it was not a fluke |
1db60ab
to
af404e3
Compare
6635990
to
94307e8
Compare
@smarter I have changed to implementation to only use |
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.
A few comments still but I think we're getting there!
|
||
def mixInlineParam(p: Symbol): Unit = | ||
if inlineOrigin.exists && p.is(Inline) then | ||
inlineExtras += hashInlineParam(p) |
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.
Potential generalization that could be done later: instead of having a hash just for inline params, have a hash for all the potentially pickled flags: if we define a val PickledFlags
union of everything that appears in TreePickler#pickleFlags
we could do h = mix(h, p.flags & PickledFlags)
(though like in tasty pickling we need to be careful about Stable cf 456e7c6)
94294a9
to
18187bf
Compare
18187bf
to
33ebf01
Compare
fcfdef1
to
99a8b20
Compare
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.
Otherwise LGTM!
99a8b20
to
683c458
Compare
I think the convention we used is that if something should be mentioned in the release note, the PR description should be updated with the text to be inserted in the release note, could you handle that? |
fixes #11861