]> git.lizzy.rs Git - rust.git/commitdiff
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)
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


Trivial merge