diff options
| author | scalexm <alexandre@scalexm.fr> | 2018-10-13 16:29:21 +0200 |
|---|---|---|
| committer | scalexm <alexandre@scalexm.fr> | 2018-10-17 14:09:39 +0200 |
| commit | 7ec8269d0aead891c25a20b4e4c4cc5d73eccf79 (patch) | |
| tree | cd0bb4f4fc82da3704883026dfe9d49ab36de226 | |
| parent | b5d1aac8837d053df75996a7f5b5e6d0760d8006 (diff) | |
| download | rust-7ec8269d0aead891c25a20b4e4c4cc5d73eccf79.tar.gz rust-7ec8269d0aead891c25a20b4e4c4cc5d73eccf79.zip | |
Implement `InferenceTable::add_clauses`
| -rw-r--r-- | src/librustc_traits/chalk_context.rs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/librustc_traits/chalk_context.rs b/src/librustc_traits/chalk_context.rs index 2fd8aa0c3af..371fa46f370 100644 --- a/src/librustc_traits/chalk_context.rs +++ b/src/librustc_traits/chalk_context.rs @@ -22,7 +22,7 @@ use rustc::traits::{ ExClauseLift, Goal, GoalKind, - ProgramClause, + Clause, QuantifierKind, Environment, InEnvironment, @@ -100,9 +100,9 @@ impl context::Context for ChalkArenas<'tcx> { 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, ()>; @@ -272,10 +272,14 @@ impl context::InferenceTable<ChalkArenas<'gcx>, ChalkArenas<'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()) + ) + } } } @@ -287,7 +291,7 @@ impl context::ResolventOps<ChalkArenas<'gcx>, ChalkArenas<'tcx>> _environment: &Environment<'tcx>, _goal: &DomainGoal<'tcx>, _subst: &CanonicalVarValues<'tcx>, - _clause: &ProgramClause<'tcx>, + _clause: &Clause<'tcx>, ) -> chalk_engine::fallible::Fallible<Canonical<'gcx, ChalkExClause<'gcx>>> { panic!() } @@ -328,7 +332,7 @@ impl context::UnificationOps<ChalkArenas<'gcx>, ChalkArenas<'tcx>> &self, _environment: &Environment<'tcx>, goal: &DomainGoal<'tcx>, - ) -> Vec<ProgramClause<'tcx>> { + ) -> Vec<Clause<'tcx>> { use rustc::traits::WhereClause::*; match goal { |
