summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorSébastien Doeraene <sjrdoeraene@gmail.com>2015-01-05 13:11:13 +0100
committerAdriaan Moors <adriaan.moors@typesafe.com>2015-02-13 11:24:45 -0800
commitf7bc59bc2f6815cf6ca9cc17173f4335d2a0fd0b (patch)
tree8cdb2c6f9a6447758f829e9eec9091ab898703cd /src/library
parent4554a10bcafce6fb14eb8b123bf76887bb6a8114 (diff)
downloadscala-f7bc59bc2f6815cf6ca9cc17173f4335d2a0fd0b.tar.gz
scala-f7bc59bc2f6815cf6ca9cc17173f4335d2a0fd0b.tar.bz2
scala-f7bc59bc2f6815cf6ca9cc17173f4335d2a0fd0b.zip
Scala.js-friendly `ClassTag.unapply`
Use `j.l.Class.isInstance` for Scala.js, so that `unapply` works correctly when referencing raw JavaScript classes.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/reflect/ClassTag.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/library/scala/reflect/ClassTag.scala b/src/library/scala/reflect/ClassTag.scala
index 2f4aa9cb84..e83f689ca7 100644
--- a/src/library/scala/reflect/ClassTag.scala
+++ b/src/library/scala/reflect/ClassTag.scala
@@ -94,9 +94,9 @@ trait ClassTag[T] extends ClassManifestDeprecatedApis[T] with Equals with Serial
def unapply(x: Double) : Option[T] = unapplyImpl(x, classOf[Double])
def unapply(x: Boolean) : Option[T] = unapplyImpl(x, classOf[Boolean])
def unapply(x: Unit) : Option[T] = unapplyImpl(x, classOf[Unit])
-
+
private[this] def unapplyImpl(x: Any, alternative: jClass[_] = null): Option[T] = {
- val conforms = runtimeClass.isAssignableFrom(x.getClass) || (alternative != null && runtimeClass.isAssignableFrom(alternative))
+ val conforms = runtimeClass.isInstance(x) || (alternative != null && runtimeClass.isAssignableFrom(alternative))
if (conforms) Some(x.asInstanceOf[T]) else None
}