pub struct IrCoerce {
pub name: String,
pub span: SourceSpan,
pub params: Vec<IrParam>,
pub output: IrType,
pub body: String,
pub provider: Option<String>,
}Fields§
§name: String§span: SourceSpanWhere the declaration sits, so a diagnostic about the endpoint this
coerce reaches can point at its provider clause (DR-0062), the same way
an agent’s does. Not part of the .ir snapshot.
params: Vec<IrParam>§output: IrType§body: String§provider: Option<String>The backend named by the declaration’s provider <name> clause, surfaced
so information-flow analysis can treat THIS endpoint as the principal a
coerce egresses to (DR-0062). None when the declaration names none —
the backend is then whatever the selection ladder resolves at runtime, so
there is no static endpoint identity to govern by.
Not part of the .ir snapshot: like IrEffectNode::agent, this is
analysis-facing metadata, not lowered program shape.
Trait Implementations§
impl Eq for IrCoerce
impl StructuralPartialEq for IrCoerce
Auto Trait Implementations§
impl Freeze for IrCoerce
impl RefUnwindSafe for IrCoerce
impl Send for IrCoerce
impl Sync for IrCoerce
impl Unpin for IrCoerce
impl UnsafeUnpin for IrCoerce
impl UnwindSafe for IrCoerce
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more