rust/src/liballoc
bors 946654a721 auto merge of #17197 : nikomatsakis/rust/issue-5527-trait-reform-revisited, r=pcwalton
This patch does not make many functional changes, but does a lot of restructuring towards the goals of #5527. This is the biggest patch, basically, that should enable most of the other patches in a relatively straightforward way.

Major changes:

- Do not track impls through trans, instead recompute as needed.
- Isolate trait matching code into its own module, carefully structure to distinguish various phases (selection vs confirmation vs fulfillment)
- Consider where clauses in their more general form
- Integrate checking of builtin bounds into the  trait matching process, rather than doing it separately in kind.rs (important for opt-in builtin bounds)

What is not included:

- Where clauses are still not generalized. This should be a straightforward follow-up patch.
- Caching. I did not include much caching. I have plans for various kinds of caching we can do. Should be straightforward. Preliminary perf measurements suggested that this branch keeps compilation times roughly what they are.
- Method resolution. The initial algorithm I proposed for #5527 does not work as well as I hoped. I have a revised plan which is much more similar to what we do today.
- Deref vs deref-mut. The initial fix I had worked great for autoderef, but not for explicit deref. 
- Permitting blanket impls to overlap with specific impls. Initial plan to consider all nested obligations before considering an impl to match caused many compilation errors. We have a revised plan but it is not implemented here, should be a relatively straightforward extension.
2014-09-16 15:25:59 +00:00
..
arc.rs A few minor documentation fixes 2014-08-19 17:22:18 +12:00
boxed.rs Implement generalized object and type parameter bounds (Fixes #16462) 2014-08-27 21:46:52 -04:00
heap.rs auto merge of #17197 : nikomatsakis/rust/issue-5527-trait-reform-revisited, r=pcwalton 2014-09-16 15:25:59 +00:00
lib.rs Fixed misleading docs in liballoc 2014-08-28 14:57:16 -07:00
libc_heap.rs A few minor documentation fixes 2014-08-19 17:22:18 +12:00
rc.rs A few minor documentation fixes 2014-08-19 17:22:18 +12:00
util.rs libs: Fix miscellaneous fallout of librustrt 2014-06-06 23:00:01 -07:00