diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-22 20:34:25 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-22 21:41:26 -0800 |
commit | 98cf4014a3a14dbc348a464584133d90719bdbb8 (patch) | |
tree | add010ac2c7ab3e5899e2f19b47dcaa278a3734b /src/compiler/scala/reflect/internal/TreeGen.scala | |
parent | 06384c052ec31db4bd094b949bed0f3cb3fb644b (diff) | |
download | scala-98cf4014a3a14dbc348a464584133d90719bdbb8.tar.gz scala-98cf4014a3a14dbc348a464584133d90719bdbb8.tar.bz2 scala-98cf4014a3a14dbc348a464584133d90719bdbb8.zip |
One last nudge for elidable.
A method with return type Nothing elides into a call to ??? .
It's the role ??? was born for.
Diffstat (limited to 'src/compiler/scala/reflect/internal/TreeGen.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/TreeGen.scala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/scala/reflect/internal/TreeGen.scala b/src/compiler/scala/reflect/internal/TreeGen.scala index cc882ad5ed..8c2a067d4d 100644 --- a/src/compiler/scala/reflect/internal/TreeGen.scala +++ b/src/compiler/scala/reflect/internal/TreeGen.scala @@ -250,7 +250,10 @@ abstract class TreeGen { * var x: T = _ * which is appropriate to the given Type. */ - def mkZero(tp: Type): Tree = Literal(mkConstantZero(tp)) setType tp + def mkZero(tp: Type): Tree = tp.typeSymbol match { + case NothingClass => mkMethodCall(Predef_???, Nil) setType NothingClass.tpe + case _ => Literal(mkConstantZero(tp)) setType tp + } def mkConstantZero(tp: Type): Constant = tp.typeSymbol match { case UnitClass => Constant(()) |