-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Transform/nullarify #122
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
Transform/nullarify #122
Conversation
Implicit members are TermRefs that should have a prefix corresponding to the object of which they are a member. They used to have the ThisType of their owner before. `implicits2` provides a way to verify that the change works. It would be good to turn this into a more robust test at some point. But it's not high preiority, so I prefer no test to a fragile test.
Stable methods are introduced from getters by inserting () parameters. This change makes sure that adding () does not lose the members of an ExprType. Also, avoid spurious stale symbol errors in loadDenot. When something is not a SymDenotation, no use retrying in first phase; current would fail immediately.
Factored out denot transformer behavior where the we transform types in a uniform way into InfoTransformers.
Was an oversight before.
As a denotation need to take the symbol's info *as seen from the qualifier type*.
Review and sheparding by @DarkDimius please. @sjrd please review. |
List(new PatternMatcher, | ||
new LazyValTranformContext().transformer, | ||
new Splitter), | ||
List(new Nullarify, |
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.
What was a reason to create one more group?
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.
It's explained in class Nullarify:
override def runsAfterGroupsOf: Set[String] = Set("splitter")
// assumes idents and selects have symbols; interferes with splitter distribution
// that's why it's "after group".
That's all for me. |
Eliminates ExprTypes and PolyTypes over value types.
Changes to support nullarify transform which inserts () as needed.