| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
Make them each inherit from common BaseType GenericType.
That way we avoid inheriting accidentally stuff from PolyType in TypeLambda.
Also, Fix adaptation of type lambdas. Don't confuse them with PolyTypes.
|
| |
|
|
|
|
|
|
|
|
|
| |
TailRec methods remain members of enclosing class,
it means that they can refer to methods that require this.type.
It means that tailrec, unlike value classes is not allowed to widen
type of $this to it's full self type.
Fixes #1089
|
|
|
|
| |
Erasure uncurries arguments, need to track that in memberSignature.
|
|
|
|
| |
Also: generalize expandedName so that it can cater for trait setters.
|
|
|
|
|
| |
I scanned the main sources with IntellIJ's spell checker and
corrected what showed up.
|
|
|
|
|
| |
We were missing a substitution in full parameterization. Embarraingly, this
made even the example in the doc comment of `fullyParameterizedDef` fail.
|
|
|
|
| |
This method will be needed to implement VCInline.
|
|
|
|
| |
Used in at least two places, so it's of general use.
|
| |
|
| |
|
|
|
|
|
| |
It's not used and is too low-level anyway. Expanded names should
be a semantic concept, the choice of separator is irrelevant.
|
|
|
|
|
| |
The `from` field of a Return tree should either be EmptyTree or an Ident
corresponding to the method we're returning from.
|
| |
|
|
|
|
| |
Needed for fixing i321.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. They now keep track of changed constructors in templates, updating
the class scope as for other members.
2. Any changed members are now entered into the new class scope at exactly
the same position as the old one. That ensures that things like caseAccessors
still work.
3. ChangeOwners now is reflected in the prefixes of any named types.
4. Newly created classes now get their own ClassInfo type.
5. TreeTypeMaps always crete "fresh" symbols. Fresh symbols do not share
a NamedType reference with an existing reference to some other symbol.
This obviates b2e0e7b4, which will be reverted.
To make it work, the interface of TreeMap changed from an ownerMap function
to a substitution-like data structure working with two lists.
|
|
|
|
|
| |
Used in FullParameterization to substitute type parameters.
Fixes test failure for t2399.scala
|
| |
|
|
|
|
| |
Avoid substitituting A.this if A is a globally accesisble mdoule.
|
|
|
|
| |
Can now decide on rewiring on a node-by-nide basis.
|
|
|
|
| |
Adapt the transformation so that self types are handled correctly.
|
|
|
|
|
|
|
| |
t6574 has a new test where we produce identical code in an if-then-else. This broke
the rewiring logic before, and is fixed now.
Also, more comments and test cases.
|
|
Methods dealing with fully parameterized versions of classes were
pulled from `TypeUtils` and `ExtensionMethods` into `FullyParameterization`.
`TypeUtils` is left for possible future use, but is empty right now.
|