scala> :past
// Entering paste mode (ctrl-D to finish)
import scala.reflect.runtime.universe._
class A {}
class B extends A {}
class C extends A {}
def check[T: TypeTag](list: Seq[T]) = {
list match {
case v if typeOf[T] =:= typeOf[B] => println("Seq[B]")
}
}
// Exiting paste mode, now interpreting.
import scala.reflect.runtime.universe._
defined class A
defined class B
defined class C
check: [T](list: Seq[T])(implicit evidence$1: reflect.runtime.universe.TypeTag[T])Unit
scala> check(Seq(new B))
Seq[B]
scala> check(Seq(new C))
scala.MatchError: List(C@2764ad8a) (of class scala.collection.immutable.$colon$colon)
at .check(<pastie>:27)
... 27 elided
Created
March 21, 2017 10:29
-
-
Save kamijin-fanta/b1047ca659b9a517c1ad87e2bb7ff19a to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment