Skip to main content

is_associated_impl_method

Function is_associated_impl_method 

Source
pub fn is_associated_impl_method(
    method: &AIRNode,
    effect_ops: &HashMap<String, String>,
) -> bool
Expand description

True when an impl/trait method should be emitted as an associated function — assoc_fn_def holds and the method is not an effect operation.

An effect operation (effect Log { fn log(message: String) }) also lacks a self receiver, but a handler’s impl Log for ConsoleLog { fn log(...) } is an instance method: it is dispatched as handler.log(...) and must satisfy the effect’s interface, so it cannot be a static / free function. effect_ops maps each known effect operation name to its effect (seeded from every EffectDecl before emission), so a method whose name is a key is an effect op and is kept as an instance method.