]> git.lizzy.rs Git - rust.git/commit
Auto merge of #73905 - matthewjasper:projection-bounds-2, r=nikomatsakis
authorbors <bors@rust-lang.org>
Tue, 6 Oct 2020 12:26:54 +0000 (12:26 +0000)
committerbors <bors@rust-lang.org>
Tue, 6 Oct 2020 12:26:54 +0000 (12:26 +0000)
commit08e2d4616613716362b4b49980ff303f2b9ae654
tree3140f61b9128491dae42380b257532428869d1e8
parent5849a7eca90582ee59b67eb09548a2aa424d7f52
parent69fc6d8c5c27da57a399a3f5ab51f2ecf2bb954a
Auto merge of #73905 - matthewjasper:projection-bounds-2, r=nikomatsakis

Separate projection bounds and predicates

Follow up to #72788.

- Rename `projection_predicates` to `item_bounds`
- Separate bounds on associated types (the things after the `:` in `type X: ...`) and opaque types (the things after `impl`)  from predicates.
- Projection candidates now have the correct nested obligations
- Trait object candidates now check that the associated types on the trait object satisfy their bounds as nested obligations
- Type alias impl trait types are now checked (#73035)
- `feature(generic_associated_types)` no longer changes how we handle bounds (#73816)

Opening for a perf and crater runs.

r? `@nikomatsakis`