Function chalk_solve::clauses::push_auto_trait_impls_opaque

source ยท
pub fn push_auto_trait_impls_opaque<I: Interner>(
    builder: &mut ClauseBuilder<'_, I>,
    auto_trait_id: TraitId<I>,
    opaque_id: OpaqueTyId<I>,
)
Expand description

Leak auto traits for opaque types, just like push_auto_trait_impls does for structs.

For example, given the following program:

#[auto] trait Send { }
trait Trait { }
struct Bar { }
opaque type Foo: Trait = Bar

Checking the goal Foo: Send would generate the following:

Foo: Send :- Bar: Send