object Types
- Alphabetic
- By Inheritance
- Types
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
case class
ArrayType
(baseClassName: String, dimensions: Int) extends Type with ReferenceType with Product with Serializable
Array type.
-
final
case class
ClassType
(className: String) extends Type with ReferenceType with Product with Serializable
Class (or interface) type.
-
final
case class
RecordType
(fields: List[Field]) extends Type with Product with Serializable
Record type.
Record type. Used by the optimizer to inline classes as records with multiple fields. They are desugared as several local variables by JSDesugaring. Record types cannot cross method boundaries, so they cannot appear as the type of fields or parameters, nor as result types of methods. The compiler itself never generates record types.
-
sealed
trait
ReferenceType
extends AnyRef
Reference types (allowed for classOf[], is/asInstanceOf[]).
Reference types (allowed for classOf[], is/asInstanceOf[]).
A
ReferenceTypehas exactly the same level of precision as a JVM type. There is a one-to-one relationship between aReferenceTypeand an instance ofjava.lang.Classat run-time. This means that:- All primitive types have their reference type (including
scala.Byteandscala.Short), and they are different from their boxed versions. - Raw JS types are not erased to
any - Array types are like on the JVM
A
ReferenceTypetherefore uniquely identifies aclassOf[T]. It is also the reference types that are used in method signatures, and which therefore dictate JVM/IR overloading. - All primitive types have their reference type (including
-
sealed abstract
class
Type
extends AnyRef
Type of an term (expression or statement) in the IR.
Type of an term (expression or statement) in the IR.
There is a many-to-one relationship from ReferenceTypes to types, because:
scala.Byte,scala.Shortandscala.Intcollapse to IntTypejava.lang.Objectand raw JS types all collapse to AnyType
In fact, there are two
Types that do not have any real equivalent in reference types: StringType and UndefType, as they refer to the non-null variants ofjava.lang.Stringandscala.runtime.BoxedUnit, respectively.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isSubtype(lhs: Type, rhs: Type)(isSubclass: (String, String) ⇒ Boolean): Boolean
Tests whether a type
lhsis a subtype ofrhs(or equal).Tests whether a type
lhsis a subtype ofrhs(or equal). NoType is never a subtype or supertype of anything (including itself). All other types are subtypes of themselves.- isSubclass
A function testing whether a class/interface is a subclass of another class/interface.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
zeroOf(tpe: Type)(implicit pos: Position): Literal
Generates a literal zero of the given type.
-
object
AnyType
extends Type with Product with Serializable
Any type (the top type of this type system).
Any type (the top type of this type system). A variable of this type can contain any value, including
undefinedandnulland any raw JS value. This type supports a very limited set of Scala operations, the ones common to all values. Basically only reference equality tests and instance tests. It also supports all JavaScript operations, since all Scala objects are also genuine JavaScript objects. The type java.lang.Object in the back-end maps to AnyType because it can hold raw JS values (not only instances of Scala.js classes). - object ArrayType extends Serializable
-
object
BooleanType
extends Type with Product with Serializable
Boolean type.
Boolean type. It does not accept
nullnorundefined. -
object
DoubleType
extends Type with Product with Serializable
Double type (64-bit).
Double type (64-bit). It does not accept
nullnorundefined. -
object
FloatType
extends Type with Product with Serializable
Float type (32-bit).
Float type (32-bit). It does not accept
nullnorundefined. -
object
IntType
extends Type with Product with Serializable
32-bit signed integer type.
32-bit signed integer type. It does not accept
nullnorundefined. -
object
LongType
extends Type with Product with Serializable
64-bit signed integer type.
64-bit signed integer type. It does not accept
nullnorundefined. -
object
NoType
extends Type with Product with Serializable
No type.
-
object
NothingType
extends Type with Product with Serializable
Nothing type (the bottom type of this type system).
Nothing type (the bottom type of this type system). Expressions from which one can never come back are typed as
Nothing. For example,throwandreturn. -
object
NullType
extends Type with Product with Serializable
The type of
null.The type of
null. It does not acceptundefined. The null type is a subtype of all class types and array types. - object RecordType extends Serializable
-
object
StringType
extends Type with Product with Serializable
String type.
String type. It does not accept
nullnorundefined. -
object
UndefType
extends Type with Product with Serializable
The type of
undefined.