rust/src/test/ui/impl-trait
bors bfbf8375d7 Auto merge of #52488 - nikomatsakis:nll-issue-48071-universe-and-sub, r=pnkfelix
introduce universes to NLL type check

This branch aims to fix #48071 and also advance chalk integration a bit at the same time. It re-implements the subtyping/type-equating check so that NLL doesn't "piggy back" on the subtyping code of the old type checker.

This new code uses the "universe-based" approach to handling higher-ranked lifetimes, which sidesteps some of the limitations of the current "leak-based" scheme. This avoids the ICE in #48071.

At the same time, I aim for this to potentially be a kind of optimization. This NLL code is (currently) not cached, but it also generates constraints without doing as much instantiation, substitution, and folding. Right now, though, it still piggy backs on the `relate_tys` trait, which is a bit unfortunate -- it means we are doing more hashing and things than we have to. I want to measure the see the perf. Refactoring that trait is something I'd prefer to leave for follow-up work.

r? @pnkfelix -- but I want to measure perf etc first
2018-07-26 15:23:50 +00:00
..
auxiliary Use multiline note for trait suggestion 2017-06-02 10:15:13 -07:00
auto-trait-leak.rs Typeck existential types properly 2018-07-18 10:53:08 +02:00
auto-trait-leak.stderr Typeck existential types properly 2018-07-18 10:53:08 +02:00
auto-trait-leak2.rs Add message to rustc_on_unimplemented attributes in core 2018-06-19 15:19:13 -07:00
auto-trait-leak2.stderr Add message to rustc_on_unimplemented attributes in core 2018-06-19 15:19:13 -07:00
equality.rs Add existential type definitons 2018-06-07 17:33:53 +02:00
equality.stderr Add existential type definitons 2018-06-07 17:33:53 +02:00
equality2.rs Add existential type definitons 2018-06-07 17:33:53 +02:00
equality2.stderr Add existential type definitons 2018-06-07 17:33:53 +02:00
existential_type_in_fn_body.rs Allow declaring existential types inside blocks 2018-07-24 10:07:45 +02:00
impl-generic-mismatch.rs Move a test to ui tests so we can observe the output changes better 2018-05-21 09:59:37 +02:00
impl-generic-mismatch.stderr Fix impl Trait suggestion 2018-05-24 10:01:13 -07:00
impl-trait-plus-priority.rs Make + in impl/dyn Trait non-associative 2018-01-27 22:38:28 +03:00
impl-trait-plus-priority.stderr update tests 2018-03-14 00:53:24 +01:00
issue-21659-show-relevant-trait-impls-3.rs Remove NOTE/HELP annotations from UI tests 2017-12-14 23:26:39 +03:00
issue-21659-show-relevant-trait-impls-3.stderr update tests 2018-03-14 00:53:24 +01:00
issue-52128.rs Use the correct visibility 2018-07-13 20:45:23 +02:00
method-suggestion-no-duplication.rs Remove NOTE/HELP annotations from UI tests 2017-12-14 23:26:39 +03:00
method-suggestion-no-duplication.stderr Make the unstable StrExt and SliceExt traits private to libcore in not(stage0) 2018-04-21 09:47:38 +02:00
no-method-suggested-traits.rs Remove NOTE/HELP annotations from UI tests 2017-12-14 23:26:39 +03:00
no-method-suggested-traits.stderr update tests 2018-03-14 00:53:24 +01:00
region-escape-via-bound-contravariant-closure.rs Stabilize conservative_impl_trait 2018-03-26 10:43:03 +02:00
region-escape-via-bound-contravariant.rs Stabilize conservative_impl_trait 2018-03-26 10:43:03 +02:00
region-escape-via-bound.rs Fix error codes 2018-06-10 14:04:48 +02:00
region-escape-via-bound.stderr Point to lifetime in fn definition on lifetime error note 2018-06-28 11:12:42 -07:00
static-return-lifetime-infered.nll.stderr improve heuristics for what makes an interesting constraint 2018-07-25 16:36:03 +03:00
static-return-lifetime-infered.rs Remove primary label for more readable output 2018-06-08 16:27:07 -07:00
static-return-lifetime-infered.stderr Fix rebase 2018-06-28 12:52:58 -07:00
trait_type.rs Merge cfail and ui tests into ui tests 2017-11-24 11:32:35 +01:00
trait_type.stderr update tests 2018-03-14 00:53:24 +01:00
universal-issue-48703.rs added test 2018-03-28 17:51:57 -04:00
universal-issue-48703.stderr added test 2018-03-28 17:51:57 -04:00
universal-mismatched-type.rs Stabilize universal_impl_trait 2018-03-26 07:39:38 +02:00
universal-mismatched-type.stderr Stabilize universal_impl_trait 2018-03-26 07:39:38 +02:00
universal-turbofish-in-method-issue-50950.rs prohibit turbofish in impl Trait methods 2018-05-24 18:43:48 -04:00
universal-turbofish-in-method-issue-50950.stderr prohibit turbofish in impl Trait methods 2018-05-24 18:43:48 -04:00
universal-two-impl-traits.rs Stabilize universal_impl_trait 2018-03-26 07:39:38 +02:00
universal-two-impl-traits.stderr Stabilize universal_impl_trait 2018-03-26 07:39:38 +02:00
universal_wrong_bounds.rs Typo caused the wrong "cannot find" error 2018-05-21 09:56:52 +02:00
universal_wrong_bounds.stderr Typo caused the wrong "cannot find" error 2018-05-21 09:56:52 +02:00