| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
MethodTypes have paramTypes whereas PolyTypes have paramBounds.
We now harmonize by alling both paramInfos, and parameterizing
types that will become common to both.
|
|\
| |
| | |
Tailrec for derivesFrom/lookupRefined/classSymbol/classSymbols
|
| | |
|
|/
|
|
|
| |
To allow for dependencies between method type parameters, construct MethodTypes
from a closure that maps the currently constructed MethodType to its parameter types.
|
|\
| |
| | |
Fix #1990: Handle inlining where this proxies change types
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It turns out that we simply cannot do reliable outer path
computation that fills in the right hand sides of this-proxies
from the types of these proxies. As-seen-from logic can mangle
the types of proxies enough to scramble the necessary information.
What we now do instead is simply count: We record the number
of outer accesses to an outer this in inlineable code, and do the same number
of outer accesses when computing the proxy.
|
|/
|
|
|
|
| |
This was already be done in TreeTraverser but should also be done in
TreeMap and TreeAccumulator for ctx.error(..., tree.pos) to not use
completely incorrect positions inside inlined trees.
|
|
|
|
|
|
|
|
|
| |
The leading class should be the superclass of the first trait
(which is not always Object).
We could think of a more refined condition, (i.e. taking the least
common superclass of all extended traits), but I think it's not worth
it, as one can always spell out the right superclass manually.
|
|
|
|
|
| |
If a tree has type error, subtrees may not have an assigned type.
Therefore we should avoid transforming such trees.
|
|
|
|
|
| |
The Ref copier copies Idents and Selects, changing the name
of either.
|
|
|
|
|
|
|
|
|
| |
This manifested itself as a pickling difference in tasty_tools
Note that there are probably more issues in this method, in particular
the old type is reused when `qualifier.tpe eq tree.qualifier.tpe` even
if the `name` is different. But I'm only trying to get the tests to pass
for now.
|
|
|