Skip to main content

AssignabilityOverrideProvider

Trait AssignabilityOverrideProvider 

Source
pub trait AssignabilityOverrideProvider {
    // Required methods
    fn enum_assignability_override(
        &self,
        source: TypeId,
        target: TypeId,
    ) -> Option<bool>;
    fn abstract_constructor_assignability_override(
        &self,
        source: TypeId,
        target: TypeId,
    ) -> Option<bool>;
    fn constructor_accessibility_override(
        &self,
        source: TypeId,
        target: TypeId,
    ) -> Option<bool>;
}
Expand description

Trait for providing checker-specific assignability overrides.

This allows the solver’s CompatChecker to call back into the checker for special cases that require binder/symbol information (enums, abstract constructors, constructor accessibility).

Required Methods§

Source

fn enum_assignability_override( &self, source: TypeId, target: TypeId, ) -> Option<bool>

Override for enum assignability rules. Returns Some(true/false) if the override applies, None to fall through to structural checking.

Source

fn abstract_constructor_assignability_override( &self, source: TypeId, target: TypeId, ) -> Option<bool>

Override for abstract constructor assignability rules. Returns Some(false) if abstract class cannot be assigned to concrete constructor, None otherwise.

Source

fn constructor_accessibility_override( &self, source: TypeId, target: TypeId, ) -> Option<bool>

Override for constructor accessibility rules (private/protected). Returns Some(false) if accessibility mismatch prevents assignment, None otherwise.

Implementors§