Fix #19369 - duplicate macro execution in unapply methods #19381
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.
It looks like the macro really was called twice - first an unapply application is typed in
typedUnapply
(and thus the transparent inline macro expansion is run), and then a custom methodinlinedUnapply
is run (which inlines the unapply and also also wraps the unapply with a anon class). I've disabled inlining for the first call, so now only the second should be run.I've had some trouble preparing the tests, as it is impossible in our test suite to inspect stdout in a clean way and warnings/report would only be reported once. I remembered, however, that this issue caused me another problem when inspecting trees of splice owner and macro expansion would get triggered recursively, which is also fixed by this, as the first, now disabled call, was run in a bit of a non-standard context. Hopefully this test is enough.
Fixes #19369