You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There was a corner case in installAfter where
- A denotation valid in a single phase got replaced by another one
- Immediately after, the symbol's denotation would be forced in a previous phase
This somehow landed on a wrong denotation. The problem got apparent when more symbols
underwent a Recheck.updateInfoBetween. The flags field installed by a previous update
somehow was not recognized anymore. Specifically, the following was observed in order:
1. For a parameter getter (xs in LazyList, file pos-custeom-args/captures/lazylists1.scala)
the Private flag was suppressed via transformInfo at phase cc.
2. The denotation of the getter v which was valid in the single phase cc+1 was updated at
at cc by updateInfoInBetween in Recheck so that the Private flag was re-asserted in cc+1.
3. Immediately afterwards, the getter's flags was demanded at phase cc.
4. The Private flag was present, even though it should not be.
The problem was fixed by demanding the denotation of the getter as part of isntallAfter.
0 commit comments