rust/src/test
bors 8dd715ee5e Auto merge of #51895 - nikomatsakis:move-self-trait-predicate-to-items, r=scalexm
Move self trait predicate to items

This is a "reimagination" of @tmandry's PR #50183. The main effect is described in this comment from one of the commits:

---

Before we had the following results for `predicates_of`:

```rust
trait Foo { // predicates_of: Self: Foo
  fn bar(); // predicates_of: Self: Foo (inherited from trait)
}
```

Now we have removed the `Self: Foo` from the trait. However, we still
add it to the trait ITEM. This is because when people do things like
`<T as Foo>::bar()`, they still need to prove that `T: Foo`, and
having it in the `predicates_of` seems to be the cleanest way to
ensure that happens right now (otherwise, we'd need special case code
in various places):

```rust
trait Foo { // predicates_of: []
  fn bar(); // predicates_of: Self: Foo
}
```

However, we sometimes want to get the list of *just* the predicates
truly defined on a trait item (e.g., for chalk, but also for a few
other bits of code). For that, we define `predicates_defined_on`,
which does not contain the `Self: Foo` predicate yet, and we plumb
that through metadata and so forth.

---

I'm assigning @eddyb as the main reviewer, but I thought I might delegate to scalexm for this one in any case. I also want to post an alternative that I'll leave in the comments; it occurred to me as I was writing. =)

r? @eddyb
cc @scalexm @tmandry @leodasvacas
2018-07-04 09:33:33 +00:00
..
auxiliary
codegen Do not allow LLVM to increase a TLS's alignment on macOS. 2018-06-30 21:36:03 +08:00
codegen-units Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
compile-fail Auto merge of #51926 - matthewjasper:Initialization-span, r=nikomatsakis 2018-07-03 23:54:25 +00:00
compile-fail-fulldeps proc-macro: Use transparent marks for call-site hygiene 2018-06-30 01:53:32 +03:00
debuginfo Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
incremental Added incremental test for interlinking static references. 2018-06-30 23:53:52 +01:00
incremental-fulldeps Rename must-compile-successfully into compile-pass 2018-04-13 23:28:03 +02:00
mir-opt update mir-opt tests 2018-07-01 10:13:05 -04:00
parse-fail structured suggestion and rewording for ... expression syntax error 2018-06-23 22:57:37 -07:00
pretty Remove all unstable placement features 2018-04-03 11:02:34 +02:00
run-fail Fix tests 2018-06-05 10:35:44 +02:00
run-fail-fulldeps
run-make turn run-make test into a run-make-fulldeps test 2018-06-03 19:57:49 +02:00
run-make-fulldeps fix tidy 2018-06-21 13:49:03 -05:00
run-pass Add lifetime to FutureObj 2018-07-02 13:59:40 +02:00
run-pass-fulldeps proc-macro: Use transparent marks for call-site hygiene 2018-06-30 01:53:32 +03:00
run-pass-valgrind Remove some '#[feature]' attributes for stabilized features 2018-06-11 13:48:57 -07:00
rustdoc Auto merge of #51425 - QuietMisdreavus:thats-def-a-namespace-there, r=petrochenkov 2018-06-17 09:48:10 +00:00
rustdoc-js Make raw_vec perma-unstable and hidden 2018-06-29 14:01:33 +02:00
rustdoc-ui Rename intra-doc lint 2018-06-13 23:30:34 +02:00
rustfix Removed various update-reference and update-all-references scripts 2018-06-13 18:15:50 -04:00
ui Auto merge of #51895 - nikomatsakis:move-self-trait-predicate-to-items, r=scalexm 2018-07-04 09:33:33 +00:00
ui-fulldeps Removed various update-reference and update-all-references scripts 2018-06-13 18:15:50 -04:00
COMPILER_TESTS.md Update docs and diagnostics 2018-05-17 16:28:36 +02:00