aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/FullParameterization.scala
Commit message (Collapse)AuthorAgeFilesLines
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-263/+0
|
* Merge GenericType, TypeLambda and PolyTypeMartin Odersky2016-10-121-2/+2
|
* Refactoring of PolyType and TypeLambdaMartin Odersky2016-07-111-5/+5
| | | | | | | 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.
* FullParameterization: Fix indentation and a typo.Dmitry Petrashko2016-03-311-2/+2
|
* FullParametrization: allow to have $this of ThisType.Dmitry Petrashko2016-03-311-7/+27
| | | | | | | | | 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
* Make memberSignature work after erasure.Martin Odersky2015-06-011-3/+9
| | | | Erasure uncurries arguments, need to track that in memberSignature.
* New NameOps methods for Scala2 traitsMartin Odersky2015-06-011-0/+1
| | | | Also: generalize expandedName so that it can cater for trait setters.
* Correct a large number of typos.Jason Zaugg2015-05-141-1/+1
| | | | | I scanned the main sources with IntellIJ's spell checker and corrected what showed up.
* Fix #522.Martin Odersky2015-05-031-2/+3
| | | | | We were missing a substitution in full parameterization. Embarraingly, this made even the example in the doc comment of `fullyParameterizedDef` fail.
* Make ExtensionMethods#extensionMethods an object methodGuillaume Martres2015-05-011-9/+12
| | | | This method will be needed to implement VCInline.
* New utility method in TypeUtils: ensureMethodicMartin Odersky2015-04-221-8/+3
| | | | Used in at least two places, so it's of general use.
* Ensure spaces after `if` in Dotty source.Dmitry Petrashko2015-04-091-1/+1
|
* Make all Dotty source files end in newline.Dmitry Petrashko2015-04-091-1/+1
|
* Drop choice of separator in expanded name.Martin Odersky2015-03-181-1/+1
| | | | | It's not used and is too low-level anyway. Expanded names should be a semantic concept, the choice of separator is irrelevant.
* FullParameterization: fix rewiring of ReturnsGuillaume Martres2015-03-021-0/+6
| | | | | The `from` field of a Return tree should either be EmptyTree or an Ident corresponding to the method we're returning from.
* Addressing review comments of #336Dmitry Petrashko2015-02-031-1/+3
|
* Allow FullParametrization to not parametrize over class targs.Dmitry Petrashko2015-02-031-9/+11
| | | | Needed for fixing i321.
* Better TreeTypeMapsMartin Odersky2014-09-131-2/+4
| | | | | | | | | | | | | | | | 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.
* Defined substitution which follows aliasesMartin Odersky2014-07-221-2/+2
| | | | | Used in FullParameterization to substitute type parameters. Fixes test failure for t2399.scala
* Allow FullParametrization to work on localy defined methodsDmitry Petrashko2014-07-221-3/+3
|
* Fix of FullParameterizationMartin Odersky2014-07-211-2/+2
| | | | Avoid substitituting A.this if A is a globally accesisble mdoule.
* Made FullParameterization more customizableMartin Odersky2014-07-171-5/+15
| | | | Can now decide on rewiring on a node-by-nide basis.
* Handle selftypes in FullParameterizationMartin Odersky2014-07-171-9/+9
| | | | Adapt the transformation so that self types are handled correctly.
* Fix to rewire typesMartin Odersky2014-07-171-16/+53
| | | | | | | 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.
* Refactored reusable full parameterization code into base trait.Martin Odersky2014-07-171-0/+178
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.