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)