Interface: CompilableType
compiler.CompilableType
Represents a type that can be compiled i.e. a type that exists and type checks can be done on it.
Since
0.11.0
Hierarchy
-
↳
CompilableType
Implemented by
BuiltInTypeAnyBuiltInTypeBoolBuiltInTypeNullBuiltInTypeNumBuiltInTypeObjBuiltInTypeStrBuiltInTypeTypeBuiltInTypeUndefinedBuiltInTypeVoid
Table of contents
Properties
Accessors
Methods
Properties
_identifier
• Protected Readonly _identifier: string
Inherited from
Defined in
kipper/core/src/compiler/semantics/types/base/type.ts:9
identifier
• Readonly identifier: string
The identifier of this type.
Since
0.11.0
Overrides
Defined in
kipper/core/src/compiler/semantics/types/base/compilable-type.ts:12
isCompilable
• Readonly isCompilable: true
Returns whether the type is compilable. Is always true for this type.
This only exists to differentiate this type from the base ProcessedType.
Since
0.11.0
Overrides
Defined in
kipper/core/src/compiler/semantics/types/base/compilable-type.ts:19
Accessors
isGeneric
• get isGeneric(): boolean
Returns whether the type is a generic type.
This is false unless overridden by a subclass.
Since
0.12.0
Returns
boolean
Inherited from
ProcessedType.isGeneric
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:38
isUnion
• get isUnion(): boolean
Returns whether the type is a union type.
Since
0.12.0
Returns
boolean
Inherited from
ProcessedType.isUnion
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:46
Methods
assertAssignableTo
▸ Abstract assertAssignableTo(type, propertyName?, argumentName?): void
Asserts that this type is assignable to the given type.
Throws
TypeError If the types are not assignable.
Since
0.12.0
Parameters
| Name | Type | Description |
|---|---|---|
type |
ProcessedType |
The type to check against. |
propertyName? |
string |
The name of the property that is being assigned. This is used for error messages. |
argumentName? |
string |
The name of the argument that is being assigned to. This is used for error messages. |
Returns
void
Inherited from
ProcessedType.assertAssignableTo
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:75
getCompilableType
▸ getCompilableType(): CompilableType
Gets the compilable type for this type.
This function throws an error instead of returning undefined, since it's intended to be used in circumstances, where only due to a bug the type is not compilable. As such, it makes sense to strictly assert it will be compilable, unless an error occurs.
Throws
UndefinedType If the isCompilable is false, which should only occur if the identifier is of type UndefinedType.
Since
0.10.0
Returns
Inherited from
ProcessedType.getCompilableType
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:60
isAssignableTo
▸ isAssignableTo(type): boolean
Returns whether this type is assignable to the given type. This discards any error messages.
This simply returns whether the assertAssignableTo function throws an error or not.
Since
0.12.0
Parameters
| Name | Type | Description |
|---|---|---|
type |
ProcessedType |
The type to check against. |
Returns
boolean
Inherited from
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:84
toString
▸ toString(): string
Returns the full string representation of this type.
This also includes generic type arguments if this type is a generic type.
Since
0.12.0
Returns
string
Inherited from
Defined in
kipper/core/src/compiler/semantics/types/base/processed-type.ts:93