reflect.Type

A runtime value describing a BAML type.

Reference version

Signature

class reflect.Type

A 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

function

of

<T>() -> reflect.Type throws never

Return the runtime type value for the type argument T.

Concrete arguments are materialized by one LoadType instruction.

function

of_value

(value: unknown) -> reflect.Type throws never

Return the concrete runtime type of value, never a literal type.

Values with no reconstructable BAML type produce the unknown type.

Instance methods

function

_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.

function

_validate_renderable

(self) -> void throws reflect.errors.CompilationError

(internal) Internal shared-render-boundary guard for BEP-066 R-1 and R-3.

function

array

(self) -> reflect.array.Type throws never

Construct an array type whose element is this type.

function

as_array

(self) -> reflect.array.Type | null throws never

The array view of this type, or null when it does not describe an array.

function

as_class

(self) -> reflect.class.Type | null throws never

The class view of this type, or null when it does not describe a class.

function

as_enum

(self) -> reflect.enum.Type | null throws never

The enum view of this type, or null when it does not describe an enum.

function

as_function

(self) -> reflect.function.Type | null throws never

The function view of this type, or null when it does not describe a function.

function

as_interface

(self) -> reflect.interface.Type | null throws never

The interface view of this type, or null when it does not describe an interface.

function

as_literal

(self) -> reflect.literal.Type | null throws never

The literal view of this type, or null when it does not describe a literal.

function

as_map

(self) -> reflect.map.Type | null throws never

The map view of this type, or null when it does not describe a map.

function

as_primitive

(self) -> reflect.primitive.Type | null throws never

The primitive view of this type, or null when it does not describe a primitive.

function

as_union

(self) -> reflect.union.Type | null throws never

The union view of this type, or null when it does not describe a union.

function

implemented_by

(self, other: reflect.Type) -> bool throws never

Reverse 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?".

function

implements

(self, other: reflect.Type) -> bool throws never

True 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.

function

kind

(self) -> reflect.TypeKind throws never

Returns the precise kind view of this type value: a freshly allocated view instance wrapping the receiver in its _ty field.

function

meta

(
self,
alias: string | null = …,
description: string | null = …,
docstring: string | null = …,
other: map<string, string> | null = …
) -> reflect.WithMeta<reflect.Type> throws never

Pair this type value with schema metadata without changing its identity.

function

optional

(self) -> reflect.union.Type throws never

Construct the canonical union of this type and null.

function

to_baml

(self) -> string throws reflect.errors.CompilationError

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

function

attributes

(self) -> reflect.Meta throws never

The class declaration's schema metadata, or empty metadata when the runtime type is not a class.

function

get

<T>(self, name: string) -> T | null throws reflect.errors.TypeMismatch

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.

function

get_field

(self, name: string) -> reflect.class.Field | null throws never

Return a value-bound field handle, or null when no such field exists.

function

has_field

(self, name: string) -> bool throws never

Whether this value's runtime class declares a field called name. false when the runtime type is not a class.

function

list_fields

(self) -> reflect.class.Field[] throws never

Reflected fields bound to this value for Field.value<T>().

function

name

(self) -> string throws never

The rendered name of this value's concrete runtime type.

function

type

(self) -> reflect.Type throws never

This value's concrete runtime type.

Source:<builtin>/reflect/reflect.bamlbytes 7833–7863