Skip to content

Fix #1806: Define outer accessors at the right phase #1813

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

Merged
merged 4 commits into from
Dec 16, 2016

Conversation

odersky
Copy link
Contributor

@odersky odersky commented Dec 16, 2016

Some outer accessors were defined at phase explicitOuter,
but were entered into the scope of their enclosing class only
at phase explicitOuter + 1. This turned them to stale symbols
when trying to access them at a later run, because at their
initially valid phase they were not found as members of
their owner.

Fixes #1806. Review by @nicolasstucki

New implementation following the scheme outlined in scala#1790.
This implements the rules laid down in scala#1805.
Some outer accessors were defined at phase explicitOuter,
but were entered into the scope of their enclosing class only
at phase explicitOuter + 1. This turned them to stale symbols
when trying to access them at a later run, because at their
initially valid phase they were not found as members of
their owner.
@odersky
Copy link
Contributor Author

odersky commented Dec 16, 2016

In fact this was based by accident on top of #1801.

@nicolasstucki
Copy link
Contributor

LGTM

@DarkDimius DarkDimius merged commit 50bcb1a into scala:master Dec 16, 2016
@allanrenucci allanrenucci deleted the fix-#1806 branch December 14, 2017 16:59
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.

4 participants