diff options
author | Martin Odersky <odersky@gmail.com> | 2015-03-10 13:39:21 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-03-10 13:39:21 +0100 |
commit | 8783026bc399929331a5ec5d24abbb91c27a73b0 (patch) | |
tree | bfabf2b2dd174c8d68c4fd30410dcf699ae0224d /src/dotty | |
parent | 60312a11c23b5144adf0237cc7238e68296738e4 (diff) | |
download | dotty-8783026bc399929331a5ec5d24abbb91c27a73b0.tar.gz dotty-8783026bc399929331a5ec5d24abbb91c27a73b0.tar.bz2 dotty-8783026bc399929331a5ec5d24abbb91c27a73b0.zip |
Move ElimByName as late as possible.
ElimByName might be merged with erasure, so we can alreayd move it
as close a pssoble to it. Verified that it can't be moved beyong ResolevSuper,
but not why.
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/Compiler.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ElimByName.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ResolveSuper.scala | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/Compiler.scala b/src/dotty/tools/dotc/Compiler.scala index 4d93e1dd8..0911197bd 100644 --- a/src/dotty/tools/dotc/Compiler.scala +++ b/src/dotty/tools/dotc/Compiler.scala @@ -53,11 +53,11 @@ class Compiler { new ExplicitOuter, new Splitter), List(new LazyVals, - new ElimByName, new SeqLiterals, new InterceptedMethods, new Literalize, new Getters, + new ElimByName, new ResolveSuper), List(new Erasure), List(new Mixin, diff --git a/src/dotty/tools/dotc/transform/ElimByName.scala b/src/dotty/tools/dotc/transform/ElimByName.scala index ca84fcaec..ff774b462 100644 --- a/src/dotty/tools/dotc/transform/ElimByName.scala +++ b/src/dotty/tools/dotc/transform/ElimByName.scala @@ -47,7 +47,7 @@ import ast.Trees._ * other options which have been abandoned or not yet pursued. * * Option 1: Transform => T to () => T also in method and function types. The problem with this is - * that is that it rewuires to look at every type, and this forces too much, causing + * that is that it requires to look at every type, and this forces too much, causing * Cyclic Reference errors. Abandoned for this reason. * * Option 2: Merge ElimByName with erasure, or have it run immediately before. This has not been diff --git a/src/dotty/tools/dotc/transform/ResolveSuper.scala b/src/dotty/tools/dotc/transform/ResolveSuper.scala index 953c8b74d..921a5f1fa 100644 --- a/src/dotty/tools/dotc/transform/ResolveSuper.scala +++ b/src/dotty/tools/dotc/transform/ResolveSuper.scala @@ -48,6 +48,8 @@ class ResolveSuper extends MiniPhaseTransform with IdentityDenotTransformer { th override def phaseName: String = "resolveSuper" + override def runsAfter = Set(classOf[ElimByName]) // verified empirically, need to figure out what the reason is. + /** Returns the symbol that is accessed by a super-accessor in a mixin composition. * * @param base The class in which everything is mixed together |