Skip to content

enteredAfter(phase.next) makes all subsequent enteredAfter(phase) become lost #440

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

Closed
DarkDimius opened this issue Mar 28, 2015 · 2 comments

Comments

@DarkDimius
Copy link
Contributor

We have a miniphase

(new FirstTransform,
 new SyntheticMethods)

Both synthesize symbols an use enteredAfter to install them. If SyntheticMethods is first to clone the Scope in enteredAfter(SyntheticMethods) all subsequent updates to previous scopes do not get propagated: all enteredAfter(FirstTransform) will get lost.

I see 2 way to fix this: either make all phases run atGroupEnd(than they will always update the same scope) or enteredAfter needs to be updated to also install the Symbol to future Scopes.

@odersky, WDYT?

@DarkDimius
Copy link
Contributor Author

I've tracked down some of the manifestations of #413 to this.

@DarkDimius
Copy link
Contributor Author

The same applies to

(new LambdaLift,
           new Flatten,
           new RestoreScopes)

In the end a very strange mix of members in scopes is seen, as if future phase is first to enter a symbol, all symbol entered by past phases get lost.

DarkDimius added a commit to dotty-staging/dotty that referenced this issue Mar 30, 2015
DarkDimius added a commit to dotty-staging/dotty that referenced this issue Apr 2, 2015
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

No branches or pull requests

1 participant