aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/Contexts.scala
Commit message (Collapse)AuthorAgeFilesLines
* Lazy entering of names with internal $'s in package scopesMartin Odersky2017-04-111-1/+1
| | | | | | | | | | | | | | | | Names with internal $'s are entered in package scopes only if - we look for a name with internal $'s. - we want to know all the members of a package scope This optimization seems to be fairly effective. The typical range of package scopes that need $-names is between 0 and 20%. The optimization seems to improve execution time of all unit tests by about 3%. Also. drop the inheritance from Iterable to Scope. The reason is that we now need a context parameter for toList and other Iterable operations which makes them impossible to fit into the Iterable framework.
* Make freshName semanticMartin Odersky2017-04-111-3/+0
|
* Comment out unused method in ContextMartin Odersky2017-04-041-2/+3
|
* Treat implicit by-name arguments as lazy valuesMartin Odersky2017-02-171-1/+2
| | | | | | | | | | With the previous rules, the two test cases produce a diverging implicit expansion. We avoid this by creating for every implicit by-name argument of type T a lazy implicit value of the same type. The implicit value is visible for all nested implicit searches of by-name arguments. That way, we tie the knot and obtain a recursive lazy value instead of a diverging expansion.
* Fix #1806: Define outer accessors at the right phaseMartin Odersky2016-12-161-0/+3
| | | | | | | | | 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.
* Fix #1647 Evaluate annotation arguments in proper contextMartin Odersky2016-12-011-0/+10
| | | | | | | | Need to evaluate annotation arguments in an expression context, since classes defined in asuch arguments should not be entered into enclosing class. Fixes #1647
* Fix import disablingMartin Odersky2016-12-011-2/+2
| | | | It was broken before, since it worked only on wildcard imports.
* Better printing of import symbolsMartin Odersky2016-12-011-2/+4
| | | | | Had duplications of `import` before. Also: add import info when printing contexts.
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+709