reflect.Type
A runtime value describing a BAML type.
Signature
class reflect.TypeA runtime value describing a BAML type.
reflect.Type.of<T>() describes a type argument and
reflect.Type.of_value(value) describes a value's concrete runtime type.
A type value's identity is its declarations': two values naming the same
declarations compare equal, and a runtime-created declaration is equal only
to itself. Reflection methods are exposed directly.
Source:<builtin>/reflect/type.bamlbytes 396–5508
Static methods
of
<T>() -> reflect.Type throws neverReturn the runtime type value for the type argument T.
Concrete arguments are materialized by one LoadType instruction.
of_value
(value: unknown) -> reflect.Type throws neverReturn the concrete runtime type of value, never a literal type.
Values with no reconstructable BAML type produce the unknown type.
Instance methods
_to_string_impl
(self) -> string throws never(internal) baml.ToString is implemented for reflect.Type by an out-of-body
implement block beside the interface (baml/conversions.baml): the
reflect package deliberately references nothing from baml, so the
stdlib dependency graph stays acyclic by construction.
(internal) Internal shared-render-boundary guard for BEP-066 R-1 and R-3.
Construct an array type whose element is this type.
The array view of this type, or null when it does not describe
an array.
The class view of this type, or null when it does not describe
a class.
The enum view of this type, or null when it does not describe
an enum.
The function view of this type, or null when it does not describe
a function.
The interface view of this type, or null when it does not describe
an interface.
The literal view of this type, or null when it does not describe
a literal.
The map view of this type, or null when it does not describe
a map.
The primitive view of this type, or null when it does not describe
a primitive.
The union view of this type, or null when it does not describe
a union.
implemented_by
(self, other: reflect.Type) -> bool throws neverReverse of [implements]: iface.implemented_by(klass) is the same
as klass.implements(iface). Useful when the call-site naturally
reads "does this interface include that class?".
implements
(self, other: reflect.Type) -> bool throws neverTrue iff the receiver type nominally implements the interface other
(BEP-044). Equivalent to: there is an implements other { ... } block
on the receiver class, either directly or via an interface in the
receiver's transitive implements/extends graph.
Returns false when other is not an interface, or when the
receiver is not a class.
Returns the precise kind view of this type value: a freshly
allocated view instance wrapping the receiver in its _ty field.
meta
(Pair this type value with schema metadata without changing its identity.
Construct the canonical union of this type and null.
Render deterministic canonical BAML source for this definition. Non-equivalent declarations with the same display name are rejected.
Implementations
reflect.AnyClass for T
Instance methods
The class declaration's schema metadata, or empty metadata when the runtime type is not a class.
Read a field as T. A missing field returns null; use has_field to
distinguish that case from a present field whose value is null.
Return a value-bound field handle, or null when no such field exists.
has_field
(self, name: string) -> bool throws neverWhether this value's runtime class declares a field called name.
false when the runtime type is not a class.
Reflected fields bound to this value for Field.value<T>().
name
(self) -> string throws neverThe rendered name of this value's concrete runtime type.
type
(self) -> reflect.Type throws neverThis value's concrete runtime type.
Source:<builtin>/reflect/reflect.bamlbytes 7833–7863
Related definitions
reflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.array.Typereflect.class.Fieldreflect.class.Typereflect.enum.Typereflect.errors.CompilationErrorreflect.errors.TypeMismatchreflect.function.Typereflect.interface.Typereflect.literal.Typereflect.map.Typereflect.Metareflect.primitive.Typereflect.TypeKindreflect.union.Typereflect.WithMeta