]> git.lizzy.rs Git - rust.git/commit
auto merge of #19683 : nikomatsakis/rust/generalized-where-clauses, r=nrc
authorbors <bors@rust-lang.org>
Sat, 13 Dec 2014 03:07:17 +0000 (03:07 +0000)
committerbors <bors@rust-lang.org>
Sat, 13 Dec 2014 03:07:17 +0000 (03:07 +0000)
commit2d90b91b5d2d18cd433a9e6f1944b685f8b4bb04
tree4505a743df61f423226618ea002c87faccb9891b
parent8c6692724242c93416e574a48c5ea51b2e95d461
parent124e1e18cc4f327730a978a7a8c1e7876bb63c6e
auto merge of #19683 : nikomatsakis/rust/generalized-where-clauses, r=nrc

This patch does not itself enable generalized where clauses, but it lays the groundwork. Rather than storing a list of bounds per type parameter, the trait selection and other logic is now driven by a unified list of predicates. All predicate handling is now driven through a common interface. This also fixes a number of bugs where region predicates were being dropped on the floor. As a drive-by, this patch also fixes some bugs in the opt-out-copy feature flag.

That said, this patch does not change the parser or AST in any way, so we still *generate* the list of predicates by walking a list of bounds (and we still *store* the bounds on the `TypeParameterDef` and so on). Those will get patched in a follow-up.

The commits in this case are standalone; the first few are simple refactorings.

r? @nick29581
cc @aturon