Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

type_of

type_of

§(T 
type
, _ type_of.T)
:
Any
 => 
Type

universe feature to determine the compile-time type of an expression.

This is to be called without an actual type passed to `T`, but `T` should be
inferred from the actual value argument `_`.

The value arugment is evaluated and ignored.

The result is the type of the value argument boxed into a ref value and returned
as a value of type `Type`.

examples:

`type_of "bla"` is `String`
`type_of (panic "***")` will terminate

Functions

§
:
Any
 => 
String 
[Inherited from  Any]
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
§
:
Any
 => 
Type 
[Inherited from  Any]
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.

There is no dynamic type of a type instance since this would result in an
endless hierachy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
§
:
Any
 => 
String 
[Inherited from  Any]
convenience prefix operator to create a string from a value.

This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.