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/typechecker/RefChecks.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/typechecker/RefChecks.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 92e9f54190..89617e6f2c 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -1528,12 +1528,9 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R // inside annotations. applyRefchecksToAnnotations(tree) var result: Tree = tree match { - case DefDef(mods, name, tparams, vparams, tpt, EmptyTree) if tree.symbol.hasAnnotation(NativeAttr) => - tree.symbol.resetFlag(DEFERRED) - transform(treeCopy.DefDef( - tree, mods, name, tparams, vparams, tpt, - typed(gen.mkSysErrorCall("native method stub")) - )) + case DefDef(_, _, _, _, _, EmptyTree) if sym hasAnnotation NativeAttr => + sym resetFlag DEFERRED + transform(deriveDefDef(tree)(_ => typed(gen.mkSysErrorCall("native method stub")))) case ValDef(_, _, _, _) | DefDef(_, _, _, _, _, _) => checkDeprecatedOvers(tree) |