| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Previously it didn't, because it created an ExprType, which is
illegal after erasure.
|
|
|
|
|
| |
I have figured out how to make this the default in Eclipse, so hopefully
we won't see many repeats of this.
|
|
|
|
| |
Used in at least two places, so it's of general use.
|
|
|
|
| |
They are in SymUtils
|
| |
|
|
|
|
|
|
|
| |
The name duplications transform.Erasure / core.transform.Erasure
caused irregularities in the imports and the smae name was confusing.
Besides Erasure was the only class in core.transform, so it seemed
better to eliminate the package alltogether.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New phase ElimByName elimintaes by-name parameters. All other
occurrences of parameterless methods and ExprTypes are eliminated
in erasure.
The reason for the split like this is that it is very hard for
Nullarify to determine when to insert ()'s. The logic for this
is fragile because we need to look at previous denotations which might
not exist (before splitter) or might result from a merge
between parameterless and nullary methods. In Erasure
the same is much simpler to achieve.
|
|
|
|
|
| |
Distinguish translations between Java and Scala varargs methods
and add bridges where needed.
|
|
|
|
|
|
|
|
|
|
| |
If some node in tree is transformed changing the type,
the outer node could potentially also change type.
This patch implements a RetypingTreeMap that propagates those
changes until types converge. Propagation is done for tree nodes
that are able to compute their type based on their children:
Pair, Block, If, Match, CaseDef, Try, SeqLiteral, Annotated, Select.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Pattern match needs to compare against list of names, not single name.
Universal equality bites again...
Also fix comment for ElimRepeated.
|
|
|
|
|
| |
When figuring out which of a number of static methods corresponds to an overloaded dynamic
method, we only need to compare signatures. No need to resconstruct the full dynamic type.
|
|
|
|
| |
Some fixes to toStatic. Also added a method that transforms a RepeatedType to the corresponding Seq type.
|
|
New phase for extension methods.
Also, split off some type handling functionality that can be used
elsewhere in new TypeUtils decorator. The idea is that TypeUtils should
contain methods on Type that make sense specifically for transformations.
That way, we can keep Types from growing. Might make sense to do similar
decorators for Denotations as well.
There's a bug fix in MacroTransform: Need to treat selfInfo varDels specially, since they have no symbol.
|