diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-22 22:46:32 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-23 00:35:22 -0800 |
commit | 4a984f82d5bfca05123c53bd385d0299818f8a75 (patch) | |
tree | d9f5cc270fee70649ee22cd715c0899ae204ef26 /src/compiler/scala/tools/nsc/transform/AddInterfaces.scala | |
parent | 98cf4014a3a14dbc348a464584133d90719bdbb8 (diff) | |
download | scala-4a984f82d5bfca05123c53bd385d0299818f8a75.tar.gz scala-4a984f82d5bfca05123c53bd385d0299818f8a75.tar.bz2 scala-4a984f82d5bfca05123c53bd385d0299818f8a75.zip |
Methods to derive new DefDefs.
I guess I'd seen DefDef(mods, name, tparams, vparamss, tpt, rhs)
one too many times and went a little crazy. What do you prefer:
- val DefDef(mods, name, tparams, vparamss, tpt, rhs) = tree1
- treeCopy.DefDef(tree1, mods, name, tparams, vparamss, tpt, transform(rhs))
+ deriveDefDef(tree1)(transform)
Me too.
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/AddInterfaces.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/AddInterfaces.scala | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala index b4ec8a23ce..d5a413337b 100644 --- a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala +++ b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala @@ -319,10 +319,8 @@ abstract class AddInterfaces extends InfoTransform { case ClassDef(mods, name, tparams, impl) if (sym.needsImplClass) => implClass(sym).initialize // to force lateDEFERRED flags treeCopy.ClassDef(tree, mods | INTERFACE, name, tparams, ifaceTemplate(impl)) - case DefDef(mods, name, tparams, vparamss, tpt, rhs) - if (sym.isClassConstructor && sym.isPrimaryConstructor && sym.owner != ArrayClass) => - treeCopy.DefDef(tree, mods, name, tparams, vparamss, tpt, - addMixinConstructorCalls(rhs, sym.owner)) // (3) + case DefDef(_,_,_,_,_,_) if sym.isClassConstructor && sym.isPrimaryConstructor && sym.owner != ArrayClass => + deriveDefDef(tree)(addMixinConstructorCalls(_, sym.owner)) // (3) case Template(parents, self, body) => val parents1 = sym.owner.info.parents map (t => TypeTree(t) setPos tree.pos) treeCopy.Template(tree, parents1, emptyValDef, body) |