diff options
author | Paul Phillips <paulp@improving.org> | 2013-09-18 08:02:32 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-09-18 08:02:36 -0700 |
commit | 2b03ac41c0f53d7a411e7f232d6814d7d51051a3 (patch) | |
tree | 3addaef5b4e39a4eab9c829421582f7109607e08 /src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala | |
parent | a8543ef28f8fc0152208f4eef763344657bf9e5a (diff) | |
download | scala-2b03ac41c0f53d7a411e7f232d6814d7d51051a3.tar.gz scala-2b03ac41c0f53d7a411e7f232d6814d7d51051a3.tar.bz2 scala-2b03ac41c0f53d7a411e7f232d6814d7d51051a3.zip |
Type housekeeping.
Moved ListOfNil somewhere more generally accessible. No
reason the compiler should hoard it for itself. Flitted
to a few locations with constructs like ".head.head" and
".tail.head" looking for code which could be rewritten. Found
some, admittedly not always making use of ListOfNil.
Made overdue moves of ConstantType(Constant(true|false|null))
to vals in Definitions.
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala index 540b8f6c6c..b2e071579e 100644 --- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala +++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala @@ -276,18 +276,16 @@ abstract class ExplicitOuter extends InfoTransform else outerPath(outerSelect(base), from.outerClass, to) } - override def transform(tree: Tree): Tree = { + def sym = tree.symbol val savedOuterParam = outerParam try { tree match { case Template(_, _, _) => outerParam = NoSymbol - case DefDef(_, _, _, vparamss, _, _) => - if (tree.symbol.isClassConstructor && isInner(tree.symbol.owner)) { - outerParam = vparamss.head.head.symbol - assert(outerParam.name startsWith nme.OUTER, outerParam.name) - } + case DefDef(_, _, _, (param :: _) :: _, _, _) if sym.isClassConstructor && isInner(sym.owner) => + outerParam = param.symbol + assert(outerParam.name startsWith nme.OUTER, outerParam.name) case _ => } super.transform(tree) |