about summary refs log tree commit diff
path: root/src/librustc/traits/engine.rs
AgeCommit message (Collapse)AuthorLines
2020-02-16Move librustc/{traits,infer} to librustc_infer.Camille GILLOT-88/+0
2020-01-20Add `ConstnessAnd` that implements `ToPredicate`Dylan MacKenzie-2/+2
2020-01-05Remove rustc_hir reexports in rustc::hir.Mazdak Farrokhzad-1/+1
2019-12-22Format the worldMark Rousskov-12/+12
2019-06-14Unify all uses of 'gcx and 'tcx.Eduard-Mihai Burtescu-8/+8
2019-06-12rustc: replace `TyCtxt<'tcx, 'gcx, 'tcx>` with `TyCtxt<'gcx, 'tcx>`.Eduard-Mihai Burtescu-1/+1
2019-06-12rustc: replace `TyCtxt<'a, 'gcx, 'tcx>` with `TyCtxt<'tcx, 'gcx, 'tcx>`.Eduard-Mihai Burtescu-1/+1
2019-02-05move librustc to 2018Mark Mansi-4/+4
2018-12-27Integrate chalk enginescalexm-5/+24
2018-12-25Remove licensesMark Rousskov-10/+0
2018-06-27change the `enter_canonical_trait_query` method to give a fulfill cxNiko Matsakis-20/+28
2018-06-08Avoid useless Vec clones in pending_obligations().Nicholas Nethercote-2/+2
The only instance of `ObligationForest` in use has an obligation type of `PendingPredicateObligation`, which contains a `PredicateObligation` and a `Vec<Ty>`. `FulfillmentContext::pending_obligations()` calls `ObligationForest::pending_obligations()`, which clones all the `PendingPredicateObligation`s. But the `Vec<Ty>` field of those cloned obligations is never touched. This patch changes `ObligationForest::pending_obligations()` to `map_pending_obligations` -- which gives callers control about which part of the obligation to clone -- and takes advantage of the change to avoid cloning the `Vec<Ty>`. The change speeds up runs of a few rustc-perf benchmarks, the best by 1%.
2018-03-23move the defaut object lifetime bound into the traitNiko Matsakis-2/+2
This way, we don't have to repeat it.
2018-03-23apply rustfmtNiko Matsakis-14/+16
2018-03-23fix `Self`Niko Matsakis-2/+1
2018-03-23import trait engine to typeckcsmoe-14/+15
2018-03-23introduce trait engine modcsmoe-0/+69