reflect.Class
A class-kind view of a `type` value. Users never construct this class.
Signature
class reflect.ClassA class-kind view of a type value. Users never construct this class.
Source:<builtin>/reflect/kinds.bamlbytes 75–4475
Fields
_ty
reflect.TypeThe wrapped type value. Private by invariant: reflection natives are
its only readers, and each kind method panics if the held type no longer
classifies as this view's kind.
Static methods
(internal) Internal native backing extends; every field type is a
type value.
_new
((internal) Internal native backing new; all arguments have been
materialized and every field type is a type value.
Start an incrementally-defined runtime class. Builders are required when one or more fields recursively refer to the class being defined.
Construct a closed runtime class that implements the interface I.
The class declares every field of I and of the interfaces I
requires, transitively, followed by fields. A required interface's
fields come before the fields of the interface that requires it, and
required interfaces are visited in the order their requires clause
lists them, so for interface FooBar requires HasA, HasB { c: int }
the class declares a, b, c, then fields. An interface reached
through two paths contributes its fields once, at their first position.
Each interface field keeps its doc comment.
The class implements I and every interface in its requires closure,
each interface field satisfied by the class field of the same name.
Interface default methods apply to the class as usual.
Throws
reflect.errors.CompilationErrorifIis not an interface, if an interface in the closure has a method without a default body, iffieldsnames a field an interface already declares, or if two interfaces declare the same field with different types.
Assert-read a named field from a runtime-shaped class instance.
new
(Construct a closed runtime class. Map iteration order is definition order.
Instance methods
The class's fields, in declaration order. Ownerless: these describe
the type, so Field.value on them returns null.
The class declaration's own schema metadata.
name
(self) -> string throws neverThe class's name, rendered like to_string: Runtime,
shape.Inner, Box<int>.
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 the field called name as T, or null if this value's class
declares no such field. A present field holding null also reads as
null; use has_field or get<T?> to tell the two apart.
Throws
reflect.errors.TypeMismatchif the field's value is not aT.
A value-bound handle to the field called name, or null if this
value's class declares no such field.
get
<T>(self, name: string) -> T throws reflect.errors.NotFound | reflect.errors.TypeMismatchRead the field called name as T. Read a nullable field with a
nullable T (get<int?>). find returns null for a missing field
instead of throwing.
Throws
reflect.errors.NotFoundif this value's class declares no field calledname.reflect.errors.TypeMismatchif the field's value is not aT.
A value-bound handle to the field called name. find_field returns
null instead of throwing.
Throws
reflect.errors.NotFoundif this value's class declares no field calledname.
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.
This value's concrete runtime type.
Source:<builtin>/reflect/reflect.bamlbytes 14431–14461
reflect.TypeView for reflect.Class
Instance methods
Construct an array type whose element is this type.
Reverse of implements: iface.implemented_by(t) is the same as
t.implements(iface). false when this type is not an interface, or
when other is not a concrete type.
True iff this type nominally implements the interface other. Any
concrete type can: a class, an enum, a primitive, a list, a map, ...
other pins the interface's associated types (an omitted one takes
its default), and only an implementation with exactly those matches:
see reflect.Type.implements. false when other is not an
interface, or when this type is not a concrete type.
Returns the precise kind view of this type value.
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.
Source:<builtin>/reflect/kinds.bamlbytes 3667–3837
Related definitions
reflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.AnyClassreflect.TypeViewreflect.TypeViewreflect.TypeViewreflect.TypeViewreflect.TypeViewreflect.TypeViewreflect.TypeViewreflect.AnyClassreflect.Arrayreflect.class.Builderreflect.class.Fieldreflect.errors.CompilationErrorreflect.errors.NotFoundreflect.errors.TypeMismatchreflect.interface.Implementationreflect.Metareflect.Typereflect.TypeKindreflect.TypeViewreflect.Unionreflect.WithMeta