TypeTest (original) (raw)
scala.reflect.TypeTest
See theTypeTest companion object
A TypeTest[S, T]
contains the logic needed to know at runtime if a value of type S
is an instance of T
.
If a pattern match is performed on a term of type s: S
that is uncheckable with s.isInstanceOf[T]
and the pattern is one of the following forms:
t: T
t @ X()
whereX.unapply
takes an argument of typeT
then a given instance ofTypeTest[S, T]
is summoned and used to perform the test.
Attributes
Companion
Source
Graph
Supertypes
Members list
A TypeTest[S, T]
can serve as an extractor that matches if and only if a value of type S
is an instance of T
.
A TypeTest[S, T]
can serve as an extractor that matches if and only if a value of type S
is an instance of T
.
The compiler tries to turn unchecked type tests in pattern matches into checked ones by wrapping a (_: T)
type pattern as tt(_: T)
, where tt
is the TypeTest[S, T]
instance. Type tests necessary before calling other extractors are treated similarly. SomeExtractor(...)
is turned into tt(SomeExtractor(...))
if T
in SomeExtractor.unapply(x: T)
is uncheckable, but we have an instance of TypeTest[S, T]
.
Attributes
Source
In this article