aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #217 from dotty-staging/transform/mixinDmitry Petrashko2014-11-1032-146/+681
|\ | | | | Transform/mixin
| * Generalize symbolic refsMartin Odersky2014-11-102-8/+7
| | | | | | | | | | | | | | Previously, there was a switch in SymDenotation#termRef to create a WithFixedSym ref when after erasure. This was done to fix a broken test, but it's clearly incomplete. The scheme is now replaced by one which always creates WithFixedSym Termrefs after erasure.
| * More docs and removing print statementsMartin Odersky2014-11-096-10/+24
| |
| * Merge mixin with the group of miniphases following it.Martin Odersky2014-11-091-2/+2
| |
| * Merge memoize with miniphases following it into one group.Martin Odersky2014-11-094-20/+31
| |
| * New functionality: changeOwnerAfterMartin Odersky2014-11-091-1/+23
| | | | | | | | | | | | Changes owners after a phase without copying the tree. This should be more suitable for the changeOwner operations used in the tree transforms so far, which are linear, i.e. no tree duplication is needed.
| * Fixed bug in treating Thickets in TreeTransformMartin Odersky2014-11-091-2/+3
| |
| * Reinstantiated full tests.Martin Odersky2014-11-091-2/+2
| | | | | | | | | | The fix to Types in 9bb35512 (Retract of optimization in computeDenot) allowed the two tests to compile "twice" again.
| * Better error message for adaptations of implicit methodsMartin Odersky2014-11-091-0/+2
| | | | | | | | | | | | Ig an implicit method has a result type which does not match the expected type, the new case fires. We avoid to diagnose missing arguments, because that's really confusing for an implicit method.
| * Fixed handling of ThisTypes in TypeErasure.Martin Odersky2014-11-091-1/+3
| | | | | | | | Need to be treated like TermRefs.
| * Retract of optimization in computeDenotMartin Odersky2014-11-092-3/+11
| | | | | | | | Needs a weakening of an assertion in assertErased
| * New Mixin scheme.Martin Odersky2014-11-097-171/+365
| | | | | | | | | | | | | | Split into two phases, ResolveSuper before Erasure and Mixin after. Likewise GettersSetters is split into Getters and Memoize. All tests pass, except two tests fail when compiled twice. Will investigate next why.
| * Adding test for Unit vars.Martin Odersky2014-11-091-1/+1
| |
| * More robost handling of isSetter/isGetterMartin Odersky2014-11-091-4/+9
| | | | | | | | | | Now survives the case where a field is written x_=, dissumulating a setter.
| * Small polishings in docs and code.Martin Odersky2014-11-092-2/+2
| |
| * Accessor methods print as "method", not "val/var".Martin Odersky2014-11-092-2/+2
| |
| * More systematic handling of Scala2LocalSuffix.Martin Odersky2014-11-091-2/+2
| | | | | | | | Separate test instead of inline.
| * Fixes to Unit handling in erasureMartin Odersky2014-11-092-5/+23
| | | | | | | | | | | | 1. Erase unit results in getters to BoxedUnit. 2. Erase => Unit to ()Unit; was ()BoxedUnit 3. Make sure ValDefs have same type in tpt as in symbol, analogous to DefDefs.
| * Methods always shwoDcl as `def`Martin Odersky2014-11-091-1/+1
| | | | | | | | | | This is reasonable because getters are only generated late in the compilation pipeline. No need to hide a getter as a val in error messages.
| * Cleanup of code for ExplicitOuterMartin Odersky2014-11-091-2/+2
| |
| * Superaccessors are methodsMartin Odersky2014-11-091-1/+1
| | | | | | | | Need to have Method flag set
| * Select operations in erasure should fix symbols in types.Martin Odersky2014-11-091-1/+1
| | | | | | | | | | | | | | | | Otherwise we get binding races, e.g. for pos/t2133.scala after mixin because we create same-named symbols in subclasses, and type refs now can refer to the subclass symbol where previously they refereed to the superclass symbol. To avoid a data race the new term ref will have a fixed symbol.
| * Fix of computeDenot.Martin Odersky2014-11-091-4/+10
| | | | | | | | | | Since we demand that after erasure all TermRefs are SymDenotations we need to assure this when computing the denotations of term refs in new phases.
| * Fixed typing of supertypes.Martin Odersky2014-11-091-1/+2
| | | | | | | | Previous version could fail where the thisType widened to an explicit self type.
| * Fixed redundancy in membersNeedAsSeenFromMartin Odersky2014-11-091-1/+1
| | | | | | | | Array types are no longer used after erasure, so the test was redundant.
| * Take supercalls into account for statement contextMartin Odersky2014-11-094-10/+12
| | | | | | | | | | After Mixin, super calls can appear in statemenr sequences. They need to be typechecked and transformed using a special context.
| * Adaptation of explicitOuter to trait initializersMartin Odersky2014-11-091-3/+7
| | | | | | | | | | | | | | | | Trait initializers do not have outer params; need to avoid passing outer args to them. This problem did not manifest itself before because no trait constructor calls were generated before erasure.
| * Adaptation of Constructors to new mixin scheme.Martin Odersky2014-11-091-6/+2
| | | | | | | | No more trait_setters are called.
| * Fix problem in changeOwnerMartin Odersky2014-11-091-1/+2
| | | | | | | | | | The problem manifests itself when changing the owner of a class field. Being a ValDef, this is classified as a weak owner. But it's parent (the class) should not be owner-changed.
| * Make cloneScope less forcefull.Martin Odersky2014-11-091-6/+25
| | | | | | | | | | Motivation: Avoid needless forcing of symbols in scope. This is a problem when cloneScope is called in TreeTransforms.
| * New option -Ydebug-ownersMartin Odersky2014-11-092-3/+6
| | | | | | | | Will print owners of symbols when displaying trees. Requires -Yprint-syms to be set also.
| * Improved version of mixin.Martin Odersky2014-11-099-71/+79
| | | | | | | | | | Now also handles all supercalls. Seems to do the right thing on pos/traits.scala. But does not pass most tests because the sym transformer forces too many things.
| * Avoid getting confused because of Scala2 local suffixesMartin Odersky2014-11-091-0/+3
| | | | | | | | | | When inheriting from Scala2 traits we sometimes encounter names with a space at the end, denoting a local variable. Drop the space because our translation scheme has no room for it.
| * Adapt GettersSetters to new Mixin scheme.Martin Odersky2014-11-095-44/+36
| | | | | | | | Trait getters are no longer needed.
| * First version of mixin transform.Martin Odersky2014-11-094-3/+227
| | | | | | | | Needs adaptations in getters/setters before it can be tested.
* | Merge pull request #211 from dotty-staging/phase-runOnDmitry Petrashko2014-11-093-4/+9
|\ \ | | | | | | Phase.runOn is now List[ComliplationUnit] => List[ComliplationUnit]
| * | Phase.runOn is now List[ComliplationUnit] => List[ComliplationUnit]Dmitry Petrashko2014-11-033-4/+9
| | | | | | | | | | | | Allows to alter number of compilation units.
* | | Merge pull request #207 from dotty-staging/transform/privateToStaticodersky2014-11-0919-40/+325
|\ \ \ | | |/ | |/| Transform/private to static
| * | Making print statement a debuglogMartin Odersky2014-11-091-1/+1
| | |
| * | Fixes to documentation.Martin Odersky2014-11-091-4/+11
| | |
| * | New phase: PrivateToStaticMartin Odersky2014-11-098-4/+197
| | | | | | | | | | | | | | | Make private methods in traits static, so that we do not need to give a default for them.
| * | Bugfix for superaccessorsMartin Odersky2014-11-091-1/+1
| | | | | | | | | | | | Threw away list of constructed statements.
| * | New phase: RestoreScopesMartin Odersky2014-11-094-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | Cleans up after LambdaLift and Flatten. RestoreScopes exhibited a problem (double definition) when compiling Unpickler. The root of the problem was in Applications.scala. The effect was that arguments woulkd be lifted out, but then the argument expression would be used anyway. That caused a closure to be present twice which caused the double def error much later. -Ycheck did not catch it because the two closure expressions were in non-overlapping scopes.
| * | Generalize lift behavior between Flatten and LambdaLiftMartin Odersky2014-11-093-5/+9
| | | | | | | | | | | | | | | To be combinable with follow-up mini-phases the lift operation needs to handle Thickets specially. This commit factors out the behavior from LambdaLift, so that Flatten can do the same thing.
| * | New miniphase: FlattenMartin Odersky2014-11-097-19/+59
| | |
| * | Made LambdaLift capable of having minitransforms run after it.Martin Odersky2014-11-091-16/+20
| | | | | | | | | | | | Some changes needed so that Flatten can run after LambdaLift
* | | Merge pull request #195 from smarter/fix/singleton-cyclesodersky2014-11-093-0/+30
|\ \ \ | |/ / |/| | Detect cycles involving types bounded by singleton types
| * | Detect cycles involving types bounded by singleton typesGuillaume Martres2014-11-063-0/+30
|/ / | | | | | | This fixes #193.
* | Merge pull request #180 from smarter/fix/nosymbol-subtypingodersky2014-11-063-6/+7
|\ \ | |/ |/| Fix subtyping of types without symbols
| * Fix subtyping of types without symbolsGuillaume Martres2014-10-093-3/+7
| |