summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/TreeGen.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-05-01 14:01:18 +0000
committerMartin Odersky <odersky@gmail.com>2007-05-01 14:01:18 +0000
commit1cc06bb6976e2d211b6219cfa7cdfbaab193791e (patch)
treee9ea3c4a2eafd5f6cd57d69c4fde3684d8f54dbc /src/compiler/scala/tools/nsc/ast/TreeGen.scala
parent28a1d779aa8e720c051890efeb711bef72528573 (diff)
downloadscala-1cc06bb6976e2d211b6219cfa7cdfbaab193791e.tar.gz
scala-1cc06bb6976e2d211b6219cfa7cdfbaab193791e.tar.bz2
scala-1cc06bb6976e2d211b6219cfa7cdfbaab193791e.zip
more additions to checknull.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeGen.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index 2baea3f4e2..5a2ffbf875 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -156,10 +156,15 @@ abstract class TreeGen {
def mkAsInstanceOf(value: Tree, tpe: Type): Tree =
mkAsInstanceOf(value, tpe, global.phase.erasedTypes)
- def mkCheckInit(tree: Tree): Tree =
- if (tree.hasSymbol && tree.symbol.tpe <:< NotNullClass.tpe && !tree.symbol.tpe.isNotNull)
+ def mkCheckInit(tree: Tree): Tree = {
+ var tpe = tree.tpe
+ if (tpe == null && tree.hasSymbol) tpe = tree.symbol.tpe
+ if (!global.phase.erasedTypes && settings.checknull.value &&
+ tpe <:< NotNullClass.tpe && !tpe.isNotNull)
mkRuntimeCall(nme.checkInitialized, List(tree))
- else tree
+ else
+ tree
+ }
/** Builds a list with given head and tail. */
def mkNewCons(head: Tree, tail: Tree): Tree =