Function chalk_solve::clauses::program_clauses::fully_visible_program_clauses
source · fn fully_visible_program_clauses<I>(
builder: &mut ClauseBuilder<'_, I>,
ty: Ty<I>,
subst: &Substitution<I>,
)where
I: Interner,
Expand description
Generates the “fully visible” program clauses for an applicative type
with the name type_name
. For example, given a struct definition:
ⓘ
struct Foo<T: Eq> { }
we would generate the clause:
forall<T> {
IsFullyVisible(Foo<T>) :- IsFullyVisible(T).
}
§Parameters
- builder – the clause builder. We assume all the generic types from
Foo
are in scope - type_name – in our example above, the name
Foo