diff options
author | Paul Phillips <paulp@improving.org> | 2009-06-28 19:36:31 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-06-28 19:36:31 +0000 |
commit | e3bb9bfa5cdaa4ef293713a7bebb189f73732e6d (patch) | |
tree | 331bc2f1d133bdc09b0792d0591f0a6cd8c8fb8b /src/compiler/scala/tools/nsc/transform/Mixin.scala | |
parent | e32113307c381e8bc8558208a6076f60666784a2 (diff) | |
download | scala-e3bb9bfa5cdaa4ef293713a7bebb189f73732e6d.tar.gz scala-e3bb9bfa5cdaa4ef293713a7bebb189f73732e6d.tar.bz2 scala-e3bb9bfa5cdaa4ef293713a7bebb189f73732e6d.zip |
DSL refinement continues apace.
good-sized whacks on Erasure.
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/Mixin.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Mixin.scala | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index 56bcd34cd2..bcab93b461 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -459,14 +459,14 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { /** Create a static reference to given symbol <code>sym</code> of the * form <code>M.sym</code> where M is the symbol's implementation module. */ - private def staticRef(sym: Symbol) = { + private def staticRef(sym: Symbol): Tree = { sym.owner.info //todo: needed? sym.owner.owner.info //todo: needed? if (sym.owner.sourceModule == NoSymbol) { assert(false, "" + sym + " in " + sym.owner + " in " + sym.owner.owner + " " + sym.owner.owner.info.decls.toList)//debug } - Select(gen.mkAttributedRef(sym.owner.sourceModule), sym) + REF(sym.owner.sourceModule) DOT sym } /** Add all new definitions to a non-trait class @@ -542,9 +542,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { def completeSuperAccessor(stat: Tree) = stat match { case DefDef(mods, name, tparams, List(vparams), tpt, EmptyTree) if (stat.symbol hasFlag SUPERACCESSOR) => - val rhs0 = - Apply(Select(Super(clazz, nme.EMPTY.toTypeName), stat.symbol.alias), - vparams map (vparam => Ident(vparam.symbol))) + val rhs0 = (Super(clazz, nme.EMPTY.toTypeName) DOT stat.symbol.alias)(vparams map (v => Ident(v.symbol)): _*) val rhs1 = localTyper.typed(atPos(stat.pos)(rhs0), stat.symbol.tpe.resultType) val rhs2 = atPhase(currentRun.mixinPhase)(transform(rhs1)) if (settings.debug.value) |