diff options
author | Martin Odersky <odersky@gmail.com> | 2007-05-01 14:01:18 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-05-01 14:01:18 +0000 |
commit | 1cc06bb6976e2d211b6219cfa7cdfbaab193791e (patch) | |
tree | e9ea3c4a2eafd5f6cd57d69c4fde3684d8f54dbc /src/compiler/scala/tools/nsc/ast/TreeGen.scala | |
parent | 28a1d779aa8e720c051890efeb711bef72528573 (diff) | |
download | scala-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.scala | 11 |
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 = |