Function chalk_solve::clauses::env_elaborator::elaborate_env_clauses

source ยท
pub(super) fn elaborate_env_clauses<I: Interner>(
    db: &dyn RustIrDatabase<I>,
    in_clauses: &[ProgramClause<I>],
    out: &mut FxHashSet<ProgramClause<I>>,
    environment: &Environment<I>,
)
Expand description

When proving a FromEnv goal, we elaborate all FromEnv goals found in the environment.

For example, when T: Clone is in the environment, we can prove T: Copy by adding the clauses from trait Clone, which includes the rule FromEnv(T: Copy) :- FromEnv(T: Clone)