aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2015-05-18 00:25:35 +0200
committerDmitry Petrashko <dark@d-d.me>2015-05-18 00:25:35 +0200
commit3dcb286ac40ab2c9ba7d10e984c85541e0d0a78a (patch)
tree659a44c5965926bb3a6597596d79db1f23c482e1
parent0edb02b43fec0fd26cf7ed3977a489f20ab06621 (diff)
parentb033f14dc28122d2b1795f1411c7b290c5d7bc67 (diff)
downloaddotty-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.scala2
-rw-r--r--tests/pos/nullAsInstanceOf.scala11
-rw-r--r--tests/run/nullAsInstanceOf.checkbin0 -> 28 bytes
-rw-r--r--tests/run/nullAsInstanceOf.scala23
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
new file mode 100644
index 000000000..3cc997cd7
--- /dev/null
+++ b/tests/run/nullAsInstanceOf.check
Binary files differ
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)
+ }
+}