ExClauseLift,
Goal,
GoalKind,
- ProgramClause,
+ Clause,
QuantifierKind,
Environment,
InEnvironment,
type Parameter = Kind<'tcx>;
- type ProgramClause = ProgramClause<'tcx>;
+ type ProgramClause = Clause<'tcx>;
- type ProgramClauses = Vec<ProgramClause<'tcx>>;
+ type ProgramClauses = Vec<Clause<'tcx>>;
type UnificationResult = InferOk<'tcx, ()>;
fn add_clauses(
&mut self,
- _env: &Environment<'tcx>,
- _clauses: Vec<ProgramClause<'tcx>>,
+ env: &Environment<'tcx>,
+ clauses: Vec<Clause<'tcx>>,
) -> Environment<'tcx> {
- panic!("FIXME no method to add clauses to Environment yet")
+ Environment {
+ clauses: self.infcx.tcx.mk_clauses(
+ env.clauses.iter().cloned().chain(clauses.into_iter())
+ )
+ }
}
}
_environment: &Environment<'tcx>,
_goal: &DomainGoal<'tcx>,
_subst: &CanonicalVarValues<'tcx>,
- _clause: &ProgramClause<'tcx>,
+ _clause: &Clause<'tcx>,
) -> chalk_engine::fallible::Fallible<Canonical<'gcx, ChalkExClause<'gcx>>> {
panic!()
}
&self,
_environment: &Environment<'tcx>,
goal: &DomainGoal<'tcx>,
- ) -> Vec<ProgramClause<'tcx>> {
+ ) -> Vec<Clause<'tcx>> {
use rustc::traits::WhereClause::*;
match goal {