Skip to main content

TypedClassDecl

Struct TypedClassDecl 

Source
pub struct TypedClassDecl {
    pub name: Ident,
    pub fields: Vec<TypedClassField>,
    pub static_methods: BTreeMap<String, Visibility>,
    pub static_fields: BTreeMap<String, FieldSig>,
    pub constructor: Option<TypedClassConstructor>,
    pub inherited_ctor_params: Vec<TypedParam>,
    pub methods: Vec<TypedClassMethod>,
    pub accessors: Vec<TypedClassAccessor>,
    pub extends: Option<MangledName>,
    pub implements: Vec<MangledName>,
    pub mangled_name: MangledName,
    pub doc: Option<DocComment>,
}
Expand description

A typechecked class. Method/constructor bodies are checked in the class-body pass; codegen (SUB-480+) consumes the field layout, body IDs, and signatures.

Fields§

§name: Ident§fields: Vec<TypedClassField>§static_methods: BTreeMap<String, Visibility>

Static member visibility retained for analyses that run after package declarations have been reduced to their runtime surface.

§static_fields: BTreeMap<String, FieldSig>

Static field signatures are lowered to globals, but their source-level visibility and callable types remain relevant to public-surface analysis.

§constructor: Option<TypedClassConstructor>§inherited_ctor_params: Vec<TypedParam>

The signature a class with no constructor of its own exposes, taken from the nearest ancestor that declares one with the extends clause’s type arguments already substituted. Empty when constructor is Some.

This is what the package declaration exports and what a cross-package consumer imports, so the emitted constructor must use it rather than re-deriving the parent’s unsubstituted parameters — the two disagree the moment a subclass fixes a generic parent’s type argument.

§methods: Vec<TypedClassMethod>§accessors: Vec<TypedClassAccessor>

Accessor functions (get/set), one entry each — getter and setter are symmetric, neither is required (a property may be get-only, set-only, or both). They are not in methods; codegen synthesizes the vtable method per entry (see codegen::classes).

§extends: Option<MangledName>§implements: Vec<MangledName>§mangled_name: MangledName§doc: Option<DocComment>

Implementations§

Source§

impl TypedClassDecl

Source

pub fn effective_ctor_params(&self) -> &[TypedParam]

The constructor signature this class exposes: its own if it declares one, otherwise the inherited signature. Callers should prefer this over reading either field directly — inherited_ctor_params is meaningful only when constructor is None.

Trait Implementations§

Source§

impl Clone for TypedClassDecl

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TypedClassDecl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for TypedClassDecl

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TypedClassDecl

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more