diff options
author | Dmitry Petrashko <dark@d-d.me> | 2015-05-18 00:25:35 +0200 |
---|---|---|
committer | Dmitry Petrashko <dark@d-d.me> | 2015-05-18 00:25:35 +0200 |
commit | 3dcb286ac40ab2c9ba7d10e984c85541e0d0a78a (patch) | |
tree | 659a44c5965926bb3a6597596d79db1f23c482e1 | |
parent | 0edb02b43fec0fd26cf7ed3977a489f20ab06621 (diff) | |
parent | b033f14dc28122d2b1795f1411c7b290c5d7bc67 (diff) | |
download | dotty-3dcb286ac40ab2c9ba7d10e984c85541e0d0a78a.tar.gz dotty-3dcb286ac40ab2c9ba7d10e984c85541e0d0a78a.tar.bz2 dotty-3dcb286ac40ab2c9ba7d10e984c85541e0d0a78a.zip |
Merge pull request #584 from smarter/fix/isUnbox
Fix null unboxing of primitives (fixes #582)
-rw-r--r-- | src/dotty/tools/dotc/transform/Erasure.scala | 2 | ||||
-rw-r--r-- | tests/pos/nullAsInstanceOf.scala | 11 | ||||
-rw-r--r-- | tests/run/nullAsInstanceOf.check | bin | 0 -> 28 bytes | |||
-rw-r--r-- | tests/run/nullAsInstanceOf.scala | 23 |
4 files changed, 24 insertions, 12 deletions
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala index 996c480ce..36d75b149 100644 --- a/src/dotty/tools/dotc/transform/Erasure.scala +++ b/src/dotty/tools/dotc/transform/Erasure.scala @@ -119,7 +119,7 @@ object Erasure extends TypeTestsCasts{ object Boxing { def isUnbox(sym: Symbol)(implicit ctx: Context) = - sym.name == nme.unbox && (defn.ScalaBoxedClasses contains sym.owner.linkedClass) + sym.name == nme.unbox && (defn.ScalaValueClasses contains sym.owner.linkedClass) def isBox(sym: Symbol)(implicit ctx: Context) = sym.name == nme.box && (defn.ScalaValueClasses contains sym.owner.linkedClass) diff --git a/tests/pos/nullAsInstanceOf.scala b/tests/pos/nullAsInstanceOf.scala deleted file mode 100644 index 2662df72e..000000000 --- a/tests/pos/nullAsInstanceOf.scala +++ /dev/null @@ -1,11 +0,0 @@ -object Test { - val b = null.asInstanceOf[Byte] - val c = null.asInstanceOf[Char] - val s = null.asInstanceOf[Short] - val i = null.asInstanceOf[Int] - val l = null.asInstanceOf[Long] - val f = null.asInstanceOf[Float] - val d = null.asInstanceOf[Double] - - val str = null.asInstanceOf[String] -} diff --git a/tests/run/nullAsInstanceOf.check b/tests/run/nullAsInstanceOf.check Binary files differnew file mode 100644 index 000000000..3cc997cd7 --- /dev/null +++ b/tests/run/nullAsInstanceOf.check diff --git a/tests/run/nullAsInstanceOf.scala b/tests/run/nullAsInstanceOf.scala new file mode 100644 index 000000000..7924ff833 --- /dev/null +++ b/tests/run/nullAsInstanceOf.scala @@ -0,0 +1,23 @@ +object Test { + def main(args: Array[String]): Unit = { + val u = null.asInstanceOf[Unit] + val b = null.asInstanceOf[Byte] + val c = null.asInstanceOf[Char] + val s = null.asInstanceOf[Short] + val i = null.asInstanceOf[Int] + val l = null.asInstanceOf[Long] + val f = null.asInstanceOf[Float] + val d = null.asInstanceOf[Double] + val str = null.asInstanceOf[String] + + println(u) + println(b) + println(c) + println(s) + println(i) + println(l) + println(f) + println(d) + println(str) + } +} |