object SType
- Alphabetic
- By Inheritance
- SType
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
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
- val EmptyArray: Array[SType]
Immutable empty array, can be used to avoid repeated allocations.
- val EmptySeq: IndexedSeq[SType]
Immutable empty IndexedSeq, can be used to avoid repeated allocations.
- val IndexedSeqOfT1: IndexedSeq[SType]
- val IndexedSeqOfT2: IndexedSeq[SType]
- val allPredefTypes: Seq[SType]
All pre-defined types should be listed here.
All pre-defined types should be listed here. Note, NoType is not listed. Should be in sync with sigmastate.lang.Types.predefTypes.
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isValueOfType[T <: SType](x: Any, tpe: T): Boolean
Checks that the type of the value corresponds to the descriptor
tpe
.Checks that the type of the value corresponds to the descriptor
tpe
. If the value has complex structure only root type constructor is checked. NOTE, this method is used in ErgoTree evaluation to systematically check that each tree node evaluates to a value of the expected type. Shallow runtime checks are enough if: 1) ErgoTree is well-typed, i.e. each sub-expression has correct types (agree with the argument type). 2)isValueOfType == true
for each tree leaf 3)isValueOfType == true
for each sub-expression- tpe
type descriptor to check value against
- returns
true if the given
value
is of type tpe
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val paramIV: STypeParam
- val paramIVSeq: Seq[STypeParam]
- val paramOV: STypeParam
- val paramR: STypeParam
- val paramT: STypeParam
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val tD: STypeVar
- val tIV: STypeVar
- val tK: STypeVar
- val tL: STypeVar
- val tO: STypeVar
- val tOV: STypeVar
- val tR: STypeVar
- val tT: STypeVar
Named type variables and parameters used in generic types and method signatures.
Named type variables and parameters used in generic types and method signatures. Generic type terms like
(Coll[IV],(IV) => Boolean) => Boolean
are used to represent method types ofColl
and
Option
in the example above) STypeVar instances are used.types. Each such type is an instance of SFunc. To represent variables (such as
IVGeneric types are not supported by ErgoTree serialization format and STypeVars are used internally and never serialized (there is no serializer for STypeVar). Thus the usage of type variables is limited.
All necessary type variables can be declared in advance and reused across all code base. This allows to avoid allocation of many duplicates and also improve performance of SType values.
- val tV: STypeVar
- def toString(): String
- Definition Classes
- AnyRef → Any
- lazy val types: Map[Byte, STypeCompanion]
A mapping of object types supporting MethodCall operations.
A mapping of object types supporting MethodCall operations. For each serialized typeId this map contains a companion object which can be used to access the list of corresponding methods.
NOTE: in the current implementation only monomorphic methods are supported (without type parameters)
NOTE2: in v3.x SNumericType.typeId is silently shadowed by SGlobal.typeId as part of
toMap
operation. As a result, the methods collected into SByte.methods cannot be resolved (using SMethod.fromIds()) for all numeric types (SByte, SShort, SInt, SLong, SBigInt). See the corresponding regressionproperty("MethodCall on numerics")
. However, this "shadowing" is not a problem since all casting methods are implemented via Downcast, Upcast opcodes and the remainingtoBytes
,toBits
methods are not implemented at all. In order to allow MethodCalls on numeric types in future versions the SNumericType.typeId should be changed and SGlobal.typeId should be preserved. The regression tests inproperty("MethodCall Codes")
should pass. - final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()