about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJack Huey <31162821+jackh726@users.noreply.github.com>2022-04-01 22:12:17 -0400
committerJack Huey <31162821+jackh726@users.noreply.github.com>2022-04-05 11:42:44 -0400
commit1c1d01eb495fb663f64766a5e7e1e23b9a2590e7 (patch)
treecb3ca5e7f17ded8fffccfdeea3707d86d1f51281
parent72e3e0e6f5fb72d5f947e07ef89455d71a6ff3ff (diff)
downloadrust-1c1d01eb495fb663f64766a5e7e1e23b9a2590e7.tar.gz
rust-1c1d01eb495fb663f64766a5e7e1e23b9a2590e7.zip
More nll revisions
-rw-r--r--src/test/ui/variance/variance-associated-types2.base.stderr (renamed from src/test/ui/variance/variance-associated-types2.stderr)4
-rw-r--r--src/test/ui/variance/variance-associated-types2.nll.stderr2
-rw-r--r--src/test/ui/variance/variance-associated-types2.rs7
-rw-r--r--src/test/ui/variance/variance-btree-invariant-types.base.stderr (renamed from src/test/ui/variance/variance-btree-invariant-types.stderr)64
-rw-r--r--src/test/ui/variance/variance-btree-invariant-types.nll.stderr32
-rw-r--r--src/test/ui/variance/variance-btree-invariant-types.rs68
-rw-r--r--src/test/ui/variance/variance-cell-is-invariant.base.stderr (renamed from src/test/ui/variance/variance-cell-is-invariant.stderr)2
-rw-r--r--src/test/ui/variance/variance-cell-is-invariant.nll.stderr2
-rw-r--r--src/test/ui/variance/variance-cell-is-invariant.rs8
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-object.base.stderr (renamed from src/test/ui/variance/variance-contravariant-arg-object.stderr)12
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-object.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-object.rs12
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-trait-match.base.stderr (renamed from src/test/ui/variance/variance-contravariant-arg-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-contravariant-arg-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-contravariant-self-trait-match.base.stderr (renamed from src/test/ui/variance/variance-contravariant-self-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-contravariant-self-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-contravariant-self-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-covariant-arg-object.base.stderr (renamed from src/test/ui/variance/variance-invariant-arg-object.stderr)12
-rw-r--r--src/test/ui/variance/variance-covariant-arg-object.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-covariant-arg-object.rs12
-rw-r--r--src/test/ui/variance/variance-covariant-arg-trait-match.base.stderr (renamed from src/test/ui/variance/variance-invariant-arg-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-covariant-arg-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-covariant-arg-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-covariant-self-trait-match.base.stderr (renamed from src/test/ui/variance/variance-invariant-self-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-covariant-self-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-covariant-self-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-invariant-arg-object.base.stderr (renamed from src/test/ui/variance/variance-covariant-arg-object.stderr)12
-rw-r--r--src/test/ui/variance/variance-invariant-arg-object.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-invariant-arg-object.rs12
-rw-r--r--src/test/ui/variance/variance-invariant-arg-trait-match.base.stderr (renamed from src/test/ui/variance/variance-covariant-arg-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-invariant-arg-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-invariant-arg-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-invariant-self-trait-match.base.stderr (renamed from src/test/ui/variance/variance-covariant-self-trait-match.stderr)12
-rw-r--r--src/test/ui/variance/variance-invariant-self-trait-match.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-invariant-self-trait-match.rs12
-rw-r--r--src/test/ui/variance/variance-trait-matching.base.stderr (renamed from src/test/ui/variance/variance-trait-matching.stderr)2
-rw-r--r--src/test/ui/variance/variance-trait-matching.nll.stderr2
-rw-r--r--src/test/ui/variance/variance-trait-matching.rs4
-rw-r--r--src/test/ui/variance/variance-use-contravariant-struct-1.base.stderr (renamed from src/test/ui/variance/variance-use-contravariant-struct-1.stderr)6
-rw-r--r--src/test/ui/variance/variance-use-contravariant-struct-1.nll.stderr2
-rw-r--r--src/test/ui/variance/variance-use-contravariant-struct-1.rs8
-rw-r--r--src/test/ui/variance/variance-use-covariant-struct-1.base.stderr (renamed from src/test/ui/variance/variance-use-covariant-struct-1.stderr)6
-rw-r--r--src/test/ui/variance/variance-use-covariant-struct-1.nll.stderr2
-rw-r--r--src/test/ui/variance/variance-use-covariant-struct-1.rs8
-rw-r--r--src/test/ui/variance/variance-use-invariant-struct-1.base.stderr (renamed from src/test/ui/variance/variance-use-invariant-struct-1.stderr)12
-rw-r--r--src/test/ui/variance/variance-use-invariant-struct-1.nll.stderr4
-rw-r--r--src/test/ui/variance/variance-use-invariant-struct-1.rs12
-rw-r--r--src/test/ui/wf/wf-static-method.base.stderr (renamed from src/test/ui/wf/wf-static-method.stderr)48
-rw-r--r--src/test/ui/wf/wf-static-method.nll.stderr12
-rw-r--r--src/test/ui/wf/wf-static-method.rs26
-rw-r--r--src/test/ui/where-clauses/where-for-self-2.base.stderr (renamed from src/test/ui/where-clauses/where-for-self-2.stderr)2
-rw-r--r--src/test/ui/where-clauses/where-for-self-2.nll.stderr2
-rw-r--r--src/test/ui/where-clauses/where-for-self-2.rs4
54 files changed, 380 insertions, 223 deletions
diff --git a/src/test/ui/variance/variance-associated-types2.stderr b/src/test/ui/variance/variance-associated-types2.base.stderr
index af4f2a7c2a0..c8ace084871 100644
--- a/src/test/ui/variance/variance-associated-types2.stderr
+++ b/src/test/ui/variance/variance-associated-types2.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-associated-types2.rs:13:42
+  --> $DIR/variance-associated-types2.rs:17:42
    |
 LL |     let _: Box<dyn Foo<Bar = &'a u32>> = make();
    |                                          ^^^^^^ lifetime mismatch
@@ -7,7 +7,7 @@ LL |     let _: Box<dyn Foo<Bar = &'a u32>> = make();
    = note: expected trait object `dyn Foo<Bar = &'a u32>`
               found trait object `dyn Foo<Bar = &'static u32>`
 note: the lifetime `'a` as defined here...
-  --> $DIR/variance-associated-types2.rs:12:9
+  --> $DIR/variance-associated-types2.rs:16:9
    |
 LL | fn take<'a>(_: &'a u32) {
    |         ^^
diff --git a/src/test/ui/variance/variance-associated-types2.nll.stderr b/src/test/ui/variance/variance-associated-types2.nll.stderr
index 35871c1236f..b74c4009692 100644
--- a/src/test/ui/variance/variance-associated-types2.nll.stderr
+++ b/src/test/ui/variance/variance-associated-types2.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-associated-types2.rs:13:12
+  --> $DIR/variance-associated-types2.rs:17:12
    |
 LL | fn take<'a>(_: &'a u32) {
    |         -- lifetime `'a` defined here
diff --git a/src/test/ui/variance/variance-associated-types2.rs b/src/test/ui/variance/variance-associated-types2.rs
index 6a095fce7ab..e3c8e6d7ca2 100644
--- a/src/test/ui/variance/variance-associated-types2.rs
+++ b/src/test/ui/variance/variance-associated-types2.rs
@@ -1,6 +1,10 @@
 // Test that dyn Foo<Bar = T> is invariant with respect to T.
 // Failure to enforce invariance here can be weaponized, see #71550 for details.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Foo {
     type Bar;
 }
@@ -11,7 +15,8 @@ fn make() -> Box<dyn Foo<Bar = &'static u32>> {
 
 fn take<'a>(_: &'a u32) {
     let _: Box<dyn Foo<Bar = &'a u32>> = make();
-    //~^ ERROR mismatched types [E0308]
+    //[base]~^ ERROR mismatched types [E0308]
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() {}
diff --git a/src/test/ui/variance/variance-btree-invariant-types.stderr b/src/test/ui/variance/variance-btree-invariant-types.base.stderr
index df519e25641..5b78f4252b3 100644
--- a/src/test/ui/variance/variance-btree-invariant-types.stderr
+++ b/src/test/ui/variance/variance-btree-invariant-types.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:4:5
+  --> $DIR/variance-btree-invariant-types.rs:8:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,14 +7,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::IterMut<'_, &'new (), _>`
               found struct `std::collections::btree_map::IterMut<'_, &'static (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:3:21
+  --> $DIR/variance-btree-invariant-types.rs:7:21
    |
 LL | fn iter_cov_key<'a, 'new>(v: IterMut<'a, &'static (), ()>) -> IterMut<'a, &'new (), ()> {
    |                     ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:7:5
+  --> $DIR/variance-btree-invariant-types.rs:13:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -22,14 +22,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::IterMut<'_, _, &'new ()>`
               found struct `std::collections::btree_map::IterMut<'_, _, &'static ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:6:21
+  --> $DIR/variance-btree-invariant-types.rs:12:21
    |
 LL | fn iter_cov_val<'a, 'new>(v: IterMut<'a, (), &'static ()>) -> IterMut<'a, (), &'new ()> {
    |                     ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:10:5
+  --> $DIR/variance-btree-invariant-types.rs:18:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -37,14 +37,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::IterMut<'_, &'static (), _>`
               found struct `std::collections::btree_map::IterMut<'_, &'new (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:9:24
+  --> $DIR/variance-btree-invariant-types.rs:17:24
    |
 LL | fn iter_contra_key<'a, 'new>(v: IterMut<'a, &'new (), ()>) -> IterMut<'a, &'static (), ()> {
    |                        ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:13:5
+  --> $DIR/variance-btree-invariant-types.rs:23:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -52,14 +52,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::IterMut<'_, _, &'static ()>`
               found struct `std::collections::btree_map::IterMut<'_, _, &'new ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:12:24
+  --> $DIR/variance-btree-invariant-types.rs:22:24
    |
 LL | fn iter_contra_val<'a, 'new>(v: IterMut<'a, (), &'new ()>) -> IterMut<'a, (), &'static ()> {
    |                        ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:17:5
+  --> $DIR/variance-btree-invariant-types.rs:29:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -67,14 +67,14 @@ LL |     v
    = note: expected struct `RangeMut<'_, &'new (), _>`
               found struct `RangeMut<'_, &'static (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:16:22
+  --> $DIR/variance-btree-invariant-types.rs:28:22
    |
 LL | fn range_cov_key<'a, 'new>(v: RangeMut<'a, &'static (), ()>) -> RangeMut<'a, &'new (), ()> {
    |                      ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:20:5
+  --> $DIR/variance-btree-invariant-types.rs:34:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -82,14 +82,14 @@ LL |     v
    = note: expected struct `RangeMut<'_, _, &'new ()>`
               found struct `RangeMut<'_, _, &'static ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:19:22
+  --> $DIR/variance-btree-invariant-types.rs:33:22
    |
 LL | fn range_cov_val<'a, 'new>(v: RangeMut<'a, (), &'static ()>) -> RangeMut<'a, (), &'new ()> {
    |                      ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:23:5
+  --> $DIR/variance-btree-invariant-types.rs:39:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -97,14 +97,14 @@ LL |     v
    = note: expected struct `RangeMut<'_, &'static (), _>`
               found struct `RangeMut<'_, &'new (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:22:25
+  --> $DIR/variance-btree-invariant-types.rs:38:25
    |
 LL | fn range_contra_key<'a, 'new>(v: RangeMut<'a, &'new (), ()>) -> RangeMut<'a, &'static (), ()> {
    |                         ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:26:5
+  --> $DIR/variance-btree-invariant-types.rs:44:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -112,14 +112,14 @@ LL |     v
    = note: expected struct `RangeMut<'_, _, &'static ()>`
               found struct `RangeMut<'_, _, &'new ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:25:25
+  --> $DIR/variance-btree-invariant-types.rs:43:25
    |
 LL | fn range_contra_val<'a, 'new>(v: RangeMut<'a, (), &'new ()>) -> RangeMut<'a, (), &'static ()> {
    |                         ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:31:5
+  --> $DIR/variance-btree-invariant-types.rs:51:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -127,14 +127,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::OccupiedEntry<'_, &'new (), _>`
               found struct `std::collections::btree_map::OccupiedEntry<'_, &'static (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:29:20
+  --> $DIR/variance-btree-invariant-types.rs:49:20
    |
 LL | fn occ_cov_key<'a, 'new>(v: OccupiedEntry<'a, &'static (), ()>)
    |                    ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:35:5
+  --> $DIR/variance-btree-invariant-types.rs:57:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -142,14 +142,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::OccupiedEntry<'_, _, &'new ()>`
               found struct `std::collections::btree_map::OccupiedEntry<'_, _, &'static ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:33:20
+  --> $DIR/variance-btree-invariant-types.rs:55:20
    |
 LL | fn occ_cov_val<'a, 'new>(v: OccupiedEntry<'a, (), &'static ()>)
    |                    ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:39:5
+  --> $DIR/variance-btree-invariant-types.rs:63:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -157,14 +157,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::OccupiedEntry<'_, &'static (), _>`
               found struct `std::collections::btree_map::OccupiedEntry<'_, &'new (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:37:23
+  --> $DIR/variance-btree-invariant-types.rs:61:23
    |
 LL | fn occ_contra_key<'a, 'new>(v: OccupiedEntry<'a, &'new (), ()>)
    |                       ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:43:5
+  --> $DIR/variance-btree-invariant-types.rs:69:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -172,14 +172,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::OccupiedEntry<'_, _, &'static ()>`
               found struct `std::collections::btree_map::OccupiedEntry<'_, _, &'new ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:41:23
+  --> $DIR/variance-btree-invariant-types.rs:67:23
    |
 LL | fn occ_contra_val<'a, 'new>(v: OccupiedEntry<'a, (), &'new ()>)
    |                       ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:48:5
+  --> $DIR/variance-btree-invariant-types.rs:76:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -187,14 +187,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::VacantEntry<'_, &'new (), _>`
               found struct `std::collections::btree_map::VacantEntry<'_, &'static (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:46:20
+  --> $DIR/variance-btree-invariant-types.rs:74:20
    |
 LL | fn vac_cov_key<'a, 'new>(v: VacantEntry<'a, &'static (), ()>)
    |                    ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:52:5
+  --> $DIR/variance-btree-invariant-types.rs:82:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -202,14 +202,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::VacantEntry<'_, _, &'new ()>`
               found struct `std::collections::btree_map::VacantEntry<'_, _, &'static ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:50:20
+  --> $DIR/variance-btree-invariant-types.rs:80:20
    |
 LL | fn vac_cov_val<'a, 'new>(v: VacantEntry<'a, (), &'static ()>)
    |                    ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:56:5
+  --> $DIR/variance-btree-invariant-types.rs:88:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -217,14 +217,14 @@ LL |     v
    = note: expected struct `std::collections::btree_map::VacantEntry<'_, &'static (), _>`
               found struct `std::collections::btree_map::VacantEntry<'_, &'new (), _>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:54:23
+  --> $DIR/variance-btree-invariant-types.rs:86:23
    |
 LL | fn vac_contra_key<'a, 'new>(v: VacantEntry<'a, &'new (), ()>)
    |                       ^^^^
    = note: ...does not necessarily outlive the static lifetime
 
 error[E0308]: mismatched types
-  --> $DIR/variance-btree-invariant-types.rs:60:5
+  --> $DIR/variance-btree-invariant-types.rs:94:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -232,7 +232,7 @@ LL |     v
    = note: expected struct `std::collections::btree_map::VacantEntry<'_, _, &'static ()>`
               found struct `std::collections::btree_map::VacantEntry<'_, _, &'new ()>`
 note: the lifetime `'new` as defined here...
-  --> $DIR/variance-btree-invariant-types.rs:58:23
+  --> $DIR/variance-btree-invariant-types.rs:92:23
    |
 LL | fn vac_contra_val<'a, 'new>(v: VacantEntry<'a, (), &'new ()>)
    |                       ^^^^
diff --git a/src/test/ui/variance/variance-btree-invariant-types.nll.stderr b/src/test/ui/variance/variance-btree-invariant-types.nll.stderr
index 867d9f8238a..f24c2a8f7cd 100644
--- a/src/test/ui/variance/variance-btree-invariant-types.nll.stderr
+++ b/src/test/ui/variance/variance-btree-invariant-types.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:4:5
+  --> $DIR/variance-btree-invariant-types.rs:8:5
    |
 LL | fn iter_cov_key<'a, 'new>(v: IterMut<'a, &'static (), ()>) -> IterMut<'a, &'new (), ()> {
    |                     ---- lifetime `'new` defined here
@@ -11,7 +11,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:7:5
+  --> $DIR/variance-btree-invariant-types.rs:13:5
    |
 LL | fn iter_cov_val<'a, 'new>(v: IterMut<'a, (), &'static ()>) -> IterMut<'a, (), &'new ()> {
    |                     ---- lifetime `'new` defined here
@@ -23,7 +23,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:10:5
+  --> $DIR/variance-btree-invariant-types.rs:18:5
    |
 LL | fn iter_contra_key<'a, 'new>(v: IterMut<'a, &'new (), ()>) -> IterMut<'a, &'static (), ()> {
    |                        ---- lifetime `'new` defined here
@@ -35,7 +35,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:13:5
+  --> $DIR/variance-btree-invariant-types.rs:23:5
    |
 LL | fn iter_contra_val<'a, 'new>(v: IterMut<'a, (), &'new ()>) -> IterMut<'a, (), &'static ()> {
    |                        ---- lifetime `'new` defined here
@@ -47,7 +47,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:17:5
+  --> $DIR/variance-btree-invariant-types.rs:29:5
    |
 LL | fn range_cov_key<'a, 'new>(v: RangeMut<'a, &'static (), ()>) -> RangeMut<'a, &'new (), ()> {
    |                      ---- lifetime `'new` defined here
@@ -59,7 +59,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:20:5
+  --> $DIR/variance-btree-invariant-types.rs:34:5
    |
 LL | fn range_cov_val<'a, 'new>(v: RangeMut<'a, (), &'static ()>) -> RangeMut<'a, (), &'new ()> {
    |                      ---- lifetime `'new` defined here
@@ -71,7 +71,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:23:5
+  --> $DIR/variance-btree-invariant-types.rs:39:5
    |
 LL | fn range_contra_key<'a, 'new>(v: RangeMut<'a, &'new (), ()>) -> RangeMut<'a, &'static (), ()> {
    |                         ---- lifetime `'new` defined here
@@ -83,7 +83,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:26:5
+  --> $DIR/variance-btree-invariant-types.rs:44:5
    |
 LL | fn range_contra_val<'a, 'new>(v: RangeMut<'a, (), &'new ()>) -> RangeMut<'a, (), &'static ()> {
    |                         ---- lifetime `'new` defined here
@@ -95,7 +95,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:31:5
+  --> $DIR/variance-btree-invariant-types.rs:51:5
    |
 LL | fn occ_cov_key<'a, 'new>(v: OccupiedEntry<'a, &'static (), ()>)
    |                    ---- lifetime `'new` defined here
@@ -108,7 +108,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:35:5
+  --> $DIR/variance-btree-invariant-types.rs:57:5
    |
 LL | fn occ_cov_val<'a, 'new>(v: OccupiedEntry<'a, (), &'static ()>)
    |                    ---- lifetime `'new` defined here
@@ -121,7 +121,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:39:5
+  --> $DIR/variance-btree-invariant-types.rs:63:5
    |
 LL | fn occ_contra_key<'a, 'new>(v: OccupiedEntry<'a, &'new (), ()>)
    |                       ---- lifetime `'new` defined here
@@ -134,7 +134,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:43:5
+  --> $DIR/variance-btree-invariant-types.rs:69:5
    |
 LL | fn occ_contra_val<'a, 'new>(v: OccupiedEntry<'a, (), &'new ()>)
    |                       ---- lifetime `'new` defined here
@@ -147,7 +147,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:48:5
+  --> $DIR/variance-btree-invariant-types.rs:76:5
    |
 LL | fn vac_cov_key<'a, 'new>(v: VacantEntry<'a, &'static (), ()>)
    |                    ---- lifetime `'new` defined here
@@ -160,7 +160,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:52:5
+  --> $DIR/variance-btree-invariant-types.rs:82:5
    |
 LL | fn vac_cov_val<'a, 'new>(v: VacantEntry<'a, (), &'static ()>)
    |                    ---- lifetime `'new` defined here
@@ -173,7 +173,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:56:5
+  --> $DIR/variance-btree-invariant-types.rs:88:5
    |
 LL | fn vac_contra_key<'a, 'new>(v: VacantEntry<'a, &'new (), ()>)
    |                       ---- lifetime `'new` defined here
@@ -186,7 +186,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-btree-invariant-types.rs:60:5
+  --> $DIR/variance-btree-invariant-types.rs:94:5
    |
 LL | fn vac_contra_val<'a, 'new>(v: VacantEntry<'a, (), &'new ()>)
    |                       ---- lifetime `'new` defined here
diff --git a/src/test/ui/variance/variance-btree-invariant-types.rs b/src/test/ui/variance/variance-btree-invariant-types.rs
index 4549622f24a..7ddf6b294a5 100644
--- a/src/test/ui/variance/variance-btree-invariant-types.rs
+++ b/src/test/ui/variance/variance-btree-invariant-types.rs
@@ -1,63 +1,99 @@
 use std::collections::btree_map::{IterMut, OccupiedEntry, RangeMut, VacantEntry};
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 fn iter_cov_key<'a, 'new>(v: IterMut<'a, &'static (), ()>) -> IterMut<'a, &'new (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn iter_cov_val<'a, 'new>(v: IterMut<'a, (), &'static ()>) -> IterMut<'a, (), &'new ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn iter_contra_key<'a, 'new>(v: IterMut<'a, &'new (), ()>) -> IterMut<'a, &'static (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn iter_contra_val<'a, 'new>(v: IterMut<'a, (), &'new ()>) -> IterMut<'a, (), &'static ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 
 fn range_cov_key<'a, 'new>(v: RangeMut<'a, &'static (), ()>) -> RangeMut<'a, &'new (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn range_cov_val<'a, 'new>(v: RangeMut<'a, (), &'static ()>) -> RangeMut<'a, (), &'new ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn range_contra_key<'a, 'new>(v: RangeMut<'a, &'new (), ()>) -> RangeMut<'a, &'static (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn range_contra_val<'a, 'new>(v: RangeMut<'a, (), &'new ()>) -> RangeMut<'a, (), &'static ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 
 fn occ_cov_key<'a, 'new>(v: OccupiedEntry<'a, &'static (), ()>)
                          -> OccupiedEntry<'a, &'new (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn occ_cov_val<'a, 'new>(v: OccupiedEntry<'a, (), &'static ()>)
                          -> OccupiedEntry<'a, (), &'new ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn occ_contra_key<'a, 'new>(v: OccupiedEntry<'a, &'new (), ()>)
                             -> OccupiedEntry<'a, &'static (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn occ_contra_val<'a, 'new>(v: OccupiedEntry<'a, (), &'new ()>)
                             -> OccupiedEntry<'a, (), &'static ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 
 fn vac_cov_key<'a, 'new>(v: VacantEntry<'a, &'static (), ()>)
                          -> VacantEntry<'a, &'new (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn vac_cov_val<'a, 'new>(v: VacantEntry<'a, (), &'static ()>)
                          -> VacantEntry<'a, (), &'new ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn vac_contra_key<'a, 'new>(v: VacantEntry<'a, &'new (), ()>)
                             -> VacantEntry<'a, &'static (), ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 fn vac_contra_val<'a, 'new>(v: VacantEntry<'a, (), &'new ()>)
                             -> VacantEntry<'a, (), &'static ()> {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ lifetime may not live long enough
 }
 
 
diff --git a/src/test/ui/variance/variance-cell-is-invariant.stderr b/src/test/ui/variance/variance-cell-is-invariant.base.stderr
index 6fcd6460fe3..e3180b6d984 100644
--- a/src/test/ui/variance/variance-cell-is-invariant.stderr
+++ b/src/test/ui/variance/variance-cell-is-invariant.base.stderr
@@ -1,5 +1,5 @@
 error[E0623]: lifetime mismatch
-  --> $DIR/variance-cell-is-invariant.rs:14:25
+  --> $DIR/variance-cell-is-invariant.rs:18:25
    |
 LL | fn use_<'short,'long>(c: Foo<'short>,
    |                          ----------- these two types are declared with different lifetimes...
diff --git a/src/test/ui/variance/variance-cell-is-invariant.nll.stderr b/src/test/ui/variance/variance-cell-is-invariant.nll.stderr
index d6a85680141..82ef94a19b2 100644
--- a/src/test/ui/variance/variance-cell-is-invariant.nll.stderr
+++ b/src/test/ui/variance/variance-cell-is-invariant.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-cell-is-invariant.rs:14:12
+  --> $DIR/variance-cell-is-invariant.rs:18:12
    |
 LL | fn use_<'short,'long>(c: Foo<'short>,
    |         ------ ----- lifetime `'long` defined here
diff --git a/src/test/ui/variance/variance-cell-is-invariant.rs b/src/test/ui/variance/variance-cell-is-invariant.rs
index ff9ad66fb0b..b8b73147d0e 100644
--- a/src/test/ui/variance/variance-cell-is-invariant.rs
+++ b/src/test/ui/variance/variance-cell-is-invariant.rs
@@ -1,6 +1,10 @@
 // Test that Cell is considered invariant with respect to its
 // type.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 use std::cell::Cell;
 
 struct Foo<'a> {
@@ -11,7 +15,9 @@ fn use_<'short,'long>(c: Foo<'short>,
                       s: &'short isize,
                       l: &'long isize,
                       _where:Option<&'short &'long ()>) {
-    let _: Foo<'long> = c; //~ ERROR E0623
+    let _: Foo<'long> = c;
+    //[base]~^ ERROR E0623
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() {
diff --git a/src/test/ui/variance/variance-contravariant-arg-object.stderr b/src/test/ui/variance/variance-contravariant-arg-object.base.stderr
index 16583fa7931..19b8b9d5aa0 100644
--- a/src/test/ui/variance/variance-contravariant-arg-object.stderr
+++ b/src/test/ui/variance/variance-contravariant-arg-object.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-arg-object.rs:14:5
+  --> $DIR/variance-contravariant-arg-object.rs:18:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     v
    = note: expected trait object `dyn Get<&'min i32>`
               found trait object `dyn Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-arg-object.rs:10:21
+  --> $DIR/variance-contravariant-arg-object.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-arg-object.rs:10:27
+  --> $DIR/variance-contravariant-arg-object.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-arg-object.rs:22:5
+  --> $DIR/variance-contravariant-arg-object.rs:28:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     v
    = note: expected trait object `dyn Get<&'max i32>`
               found trait object `dyn Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-arg-object.rs:17:21
+  --> $DIR/variance-contravariant-arg-object.rs:23:21
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-arg-object.rs:17:27
+  --> $DIR/variance-contravariant-arg-object.rs:23:27
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-contravariant-arg-object.nll.stderr b/src/test/ui/variance/variance-contravariant-arg-object.nll.stderr
index 3315eaaf1c0..4071a41703e 100644
--- a/src/test/ui/variance/variance-contravariant-arg-object.nll.stderr
+++ b/src/test/ui/variance/variance-contravariant-arg-object.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-arg-object.rs:14:5
+  --> $DIR/variance-contravariant-arg-object.rs:18:5
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     v
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-arg-object.rs:22:5
+  --> $DIR/variance-contravariant-arg-object.rs:28:5
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-contravariant-arg-object.rs b/src/test/ui/variance/variance-contravariant-arg-object.rs
index 947f4cd8b8f..dab42c35218 100644
--- a/src/test/ui/variance/variance-contravariant-arg-object.rs
+++ b/src/test/ui/variance/variance-contravariant-arg-object.rs
@@ -3,6 +3,10 @@
 // Test that even when `T` is only used in contravariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> : 'static {
     fn get(&self, t: T);
 }
@@ -11,7 +15,9 @@ fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
                                 -> Box<dyn Get<&'min i32>>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
@@ -19,7 +25,9 @@ fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
     where 'max : 'min
 {
     // Previously OK:
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() { }
diff --git a/src/test/ui/variance/variance-contravariant-arg-trait-match.stderr b/src/test/ui/variance/variance-contravariant-arg-trait-match.base.stderr
index 370e57f73df..56cf8459010 100644
--- a/src/test/ui/variance/variance-contravariant-arg-trait-match.stderr
+++ b/src/test/ui/variance/variance-contravariant-arg-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-arg-trait-match.rs:13:5
+  --> $DIR/variance-contravariant-arg-trait-match.rs:17:5
    |
 LL |     impls_get::<G,&'min i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<G,&'min i32>()
    = note: expected type `Get<&'min i32>`
               found type `Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-arg-trait-match.rs:10:21
+  --> $DIR/variance-contravariant-arg-trait-match.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-arg-trait-match.rs:10:27
+  --> $DIR/variance-contravariant-arg-trait-match.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-arg-trait-match.rs:21:5
+  --> $DIR/variance-contravariant-arg-trait-match.rs:27:5
    |
 LL |     impls_get::<G,&'max i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<G,&'max i32>()
    = note: expected type `Get<&'max i32>`
               found type `Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-arg-trait-match.rs:16:21
+  --> $DIR/variance-contravariant-arg-trait-match.rs:22:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-arg-trait-match.rs:16:27
+  --> $DIR/variance-contravariant-arg-trait-match.rs:22:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-contravariant-arg-trait-match.nll.stderr b/src/test/ui/variance/variance-contravariant-arg-trait-match.nll.stderr
index 6f136750ee1..6ca8f5ed4cc 100644
--- a/src/test/ui/variance/variance-contravariant-arg-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-contravariant-arg-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-arg-trait-match.rs:13:5
+  --> $DIR/variance-contravariant-arg-trait-match.rs:17:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<G,&'min i32>()
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-arg-trait-match.rs:21:5
+  --> $DIR/variance-contravariant-arg-trait-match.rs:27:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-contravariant-arg-trait-match.rs b/src/test/ui/variance/variance-contravariant-arg-trait-match.rs
index 904d93124c9..11513d5411c 100644
--- a/src/test/ui/variance/variance-contravariant-arg-trait-match.rs
+++ b/src/test/ui/variance/variance-contravariant-arg-trait-match.rs
@@ -3,6 +3,10 @@
 // Test that even when `T` is only used in contravariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> {
     fn get(&self, t: T);
 }
@@ -10,7 +14,9 @@ trait Get<T> {
 fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, G : Get<&'max i32>
 {
-    impls_get::<G,&'min i32>() //~ ERROR mismatched types
+    impls_get::<G,&'min i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
@@ -18,7 +24,9 @@ fn get_max_from_min<'min, 'max, G>()
 {
     // Previously OK, but now an error because traits are invariant:
 
-    impls_get::<G,&'max i32>() //~ ERROR mismatched types
+    impls_get::<G,&'max i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G,T>() where G : Get<T> { }
diff --git a/src/test/ui/variance/variance-contravariant-self-trait-match.stderr b/src/test/ui/variance/variance-contravariant-self-trait-match.base.stderr
index ab14faaa507..2ccab2ee5f0 100644
--- a/src/test/ui/variance/variance-contravariant-self-trait-match.stderr
+++ b/src/test/ui/variance/variance-contravariant-self-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-self-trait-match.rs:13:5
+  --> $DIR/variance-contravariant-self-trait-match.rs:17:5
    |
 LL |     impls_get::<&'min G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<&'min G>();
    = note: expected type `<&'min G as Get>`
               found type `<&'max G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-self-trait-match.rs:10:21
+  --> $DIR/variance-contravariant-self-trait-match.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-self-trait-match.rs:10:27
+  --> $DIR/variance-contravariant-self-trait-match.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-contravariant-self-trait-match.rs:22:5
+  --> $DIR/variance-contravariant-self-trait-match.rs:28:5
    |
 LL |     impls_get::<&'max G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<&'max G>();
    = note: expected type `<&'max G as Get>`
               found type `<&'min G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-contravariant-self-trait-match.rs:16:21
+  --> $DIR/variance-contravariant-self-trait-match.rs:22:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-contravariant-self-trait-match.rs:16:27
+  --> $DIR/variance-contravariant-self-trait-match.rs:22:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-contravariant-self-trait-match.nll.stderr b/src/test/ui/variance/variance-contravariant-self-trait-match.nll.stderr
index fe08ce0b84d..d2c549b1f71 100644
--- a/src/test/ui/variance/variance-contravariant-self-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-contravariant-self-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-self-trait-match.rs:13:5
+  --> $DIR/variance-contravariant-self-trait-match.rs:17:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<&'min G>();
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-contravariant-self-trait-match.rs:22:5
+  --> $DIR/variance-contravariant-self-trait-match.rs:28:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-contravariant-self-trait-match.rs b/src/test/ui/variance/variance-contravariant-self-trait-match.rs
index e17375841b8..f8d7c68fafe 100644
--- a/src/test/ui/variance/variance-contravariant-self-trait-match.rs
+++ b/src/test/ui/variance/variance-contravariant-self-trait-match.rs
@@ -3,6 +3,10 @@
 // Test that even when `Self` is only used in contravariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get {
     fn get(&self);
 }
@@ -10,7 +14,9 @@ trait Get {
 fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, G : 'max, &'max G : Get
 {
-    impls_get::<&'min G>(); //~ ERROR mismatched types
+    impls_get::<&'min G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
@@ -19,7 +25,9 @@ fn get_max_from_min<'min, 'max, G>()
     // Previously OK, but now error because traits are invariant with
     // respect to all inputs.
 
-    impls_get::<&'max G>(); //~ ERROR mismatched types
+    impls_get::<&'max G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G>() where G : Get { }
diff --git a/src/test/ui/variance/variance-invariant-arg-object.stderr b/src/test/ui/variance/variance-covariant-arg-object.base.stderr
index 6c1b07e6677..3a97875fe0e 100644
--- a/src/test/ui/variance/variance-invariant-arg-object.stderr
+++ b/src/test/ui/variance/variance-covariant-arg-object.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-arg-object.rs:11:5
+  --> $DIR/variance-covariant-arg-object.rs:19:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     v
    = note: expected trait object `dyn Get<&'min i32>`
               found trait object `dyn Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-arg-object.rs:7:21
+  --> $DIR/variance-covariant-arg-object.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-arg-object.rs:7:27
+  --> $DIR/variance-covariant-arg-object.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-arg-object.rs:18:5
+  --> $DIR/variance-covariant-arg-object.rs:28:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     v
    = note: expected trait object `dyn Get<&'max i32>`
               found trait object `dyn Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-arg-object.rs:14:21
+  --> $DIR/variance-covariant-arg-object.rs:24:21
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-arg-object.rs:14:27
+  --> $DIR/variance-covariant-arg-object.rs:24:27
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-covariant-arg-object.nll.stderr b/src/test/ui/variance/variance-covariant-arg-object.nll.stderr
index b116b8e263f..1b2ec61825f 100644
--- a/src/test/ui/variance/variance-covariant-arg-object.nll.stderr
+++ b/src/test/ui/variance/variance-covariant-arg-object.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-arg-object.rs:15:5
+  --> $DIR/variance-covariant-arg-object.rs:19:5
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     v
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-arg-object.rs:22:5
+  --> $DIR/variance-covariant-arg-object.rs:28:5
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-covariant-arg-object.rs b/src/test/ui/variance/variance-covariant-arg-object.rs
index 7cbf65ae3d9..20f74a3987e 100644
--- a/src/test/ui/variance/variance-covariant-arg-object.rs
+++ b/src/test/ui/variance/variance-covariant-arg-object.rs
@@ -3,6 +3,10 @@
 // Test that even when `T` is only used in covariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> : 'static {
     fn get(&self) -> T;
 }
@@ -12,14 +16,18 @@ fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
     where 'max : 'min
 {
     // Previously OK, now an error as traits are invariant.
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
                                    -> Box<dyn Get<&'max i32>>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() { }
diff --git a/src/test/ui/variance/variance-invariant-arg-trait-match.stderr b/src/test/ui/variance/variance-covariant-arg-trait-match.base.stderr
index 0328496546e..1749a871230 100644
--- a/src/test/ui/variance/variance-invariant-arg-trait-match.stderr
+++ b/src/test/ui/variance/variance-covariant-arg-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-arg-trait-match.rs:10:5
+  --> $DIR/variance-covariant-arg-trait-match.rs:18:5
    |
 LL |     impls_get::<G,&'min i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<G,&'min i32>()
    = note: expected type `Get<&'min i32>`
               found type `Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-arg-trait-match.rs:7:21
+  --> $DIR/variance-covariant-arg-trait-match.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-arg-trait-match.rs:7:27
+  --> $DIR/variance-covariant-arg-trait-match.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-arg-trait-match.rs:16:5
+  --> $DIR/variance-covariant-arg-trait-match.rs:26:5
    |
 LL |     impls_get::<G,&'max i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<G,&'max i32>()
    = note: expected type `Get<&'max i32>`
               found type `Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-arg-trait-match.rs:13:21
+  --> $DIR/variance-covariant-arg-trait-match.rs:23:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-arg-trait-match.rs:13:27
+  --> $DIR/variance-covariant-arg-trait-match.rs:23:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-covariant-arg-trait-match.nll.stderr b/src/test/ui/variance/variance-covariant-arg-trait-match.nll.stderr
index a982a29d499..870af48b3e9 100644
--- a/src/test/ui/variance/variance-covariant-arg-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-covariant-arg-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-arg-trait-match.rs:14:5
+  --> $DIR/variance-covariant-arg-trait-match.rs:18:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<G,&'min i32>()
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-arg-trait-match.rs:20:5
+  --> $DIR/variance-covariant-arg-trait-match.rs:26:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-covariant-arg-trait-match.rs b/src/test/ui/variance/variance-covariant-arg-trait-match.rs
index 2d4f0ea1582..d3d66d3fc4b 100644
--- a/src/test/ui/variance/variance-covariant-arg-trait-match.rs
+++ b/src/test/ui/variance/variance-covariant-arg-trait-match.rs
@@ -3,6 +3,10 @@
 // Test that even when `T` is only used in covariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> {
     fn get(&self) -> T;
 }
@@ -11,13 +15,17 @@ fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, G : Get<&'max i32>
 {
     // Previously OK, now an error as traits are invariant.
-    impls_get::<G,&'min i32>() //~ ERROR mismatched types
+    impls_get::<G,&'min i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
     where 'max : 'min, G : Get<&'min i32>
 {
-    impls_get::<G,&'max i32>() //~ ERROR mismatched types
+    impls_get::<G,&'max i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G,T>() where G : Get<T> { }
diff --git a/src/test/ui/variance/variance-invariant-self-trait-match.stderr b/src/test/ui/variance/variance-covariant-self-trait-match.base.stderr
index c553581b564..94afc010e21 100644
--- a/src/test/ui/variance/variance-invariant-self-trait-match.stderr
+++ b/src/test/ui/variance/variance-covariant-self-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-self-trait-match.rs:10:5
+  --> $DIR/variance-covariant-self-trait-match.rs:18:5
    |
 LL |     impls_get::<&'min G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<&'min G>();
    = note: expected type `<&'min G as Get>`
               found type `<&'max G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-self-trait-match.rs:7:21
+  --> $DIR/variance-covariant-self-trait-match.rs:14:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-self-trait-match.rs:7:27
+  --> $DIR/variance-covariant-self-trait-match.rs:14:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-invariant-self-trait-match.rs:16:5
+  --> $DIR/variance-covariant-self-trait-match.rs:26:5
    |
 LL |     impls_get::<&'max G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<&'max G>();
    = note: expected type `<&'max G as Get>`
               found type `<&'min G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-invariant-self-trait-match.rs:13:21
+  --> $DIR/variance-covariant-self-trait-match.rs:23:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-invariant-self-trait-match.rs:13:27
+  --> $DIR/variance-covariant-self-trait-match.rs:23:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-covariant-self-trait-match.nll.stderr b/src/test/ui/variance/variance-covariant-self-trait-match.nll.stderr
index 81b25e38ec6..14da2d2a552 100644
--- a/src/test/ui/variance/variance-covariant-self-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-covariant-self-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-self-trait-match.rs:14:5
+  --> $DIR/variance-covariant-self-trait-match.rs:18:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<&'min G>();
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-covariant-self-trait-match.rs:20:5
+  --> $DIR/variance-covariant-self-trait-match.rs:26:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-covariant-self-trait-match.rs b/src/test/ui/variance/variance-covariant-self-trait-match.rs
index e86a5fc630b..ece450173ca 100644
--- a/src/test/ui/variance/variance-covariant-self-trait-match.rs
+++ b/src/test/ui/variance/variance-covariant-self-trait-match.rs
@@ -3,6 +3,10 @@
 // Test that even when `Self` is only used in covariant position, it
 // is treated as invariant.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get {
     fn get() -> Self;
 }
@@ -11,13 +15,17 @@ fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, G : 'max, &'max G : Get
 {
     // Previously OK, now an error as traits are invariant.
-    impls_get::<&'min G>(); //~ ERROR mismatched types
+    impls_get::<&'min G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
     where 'max : 'min, G : 'max, &'min G : Get
 {
-    impls_get::<&'max G>(); //~ ERROR mismatched types
+    impls_get::<&'max G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G>() where G : Get { }
diff --git a/src/test/ui/variance/variance-covariant-arg-object.stderr b/src/test/ui/variance/variance-invariant-arg-object.base.stderr
index d590a4dc2d9..ec9271e902f 100644
--- a/src/test/ui/variance/variance-covariant-arg-object.stderr
+++ b/src/test/ui/variance/variance-invariant-arg-object.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-arg-object.rs:15:5
+  --> $DIR/variance-invariant-arg-object.rs:15:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     v
    = note: expected trait object `dyn Get<&'min i32>`
               found trait object `dyn Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-arg-object.rs:10:21
+  --> $DIR/variance-invariant-arg-object.rs:11:21
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-arg-object.rs:10:27
+  --> $DIR/variance-invariant-arg-object.rs:11:27
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-arg-object.rs:22:5
+  --> $DIR/variance-invariant-arg-object.rs:24:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     v
    = note: expected trait object `dyn Get<&'max i32>`
               found trait object `dyn Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-arg-object.rs:18:21
+  --> $DIR/variance-invariant-arg-object.rs:20:21
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-arg-object.rs:18:27
+  --> $DIR/variance-invariant-arg-object.rs:20:27
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-invariant-arg-object.nll.stderr b/src/test/ui/variance/variance-invariant-arg-object.nll.stderr
index 303c7f3388a..47364f42656 100644
--- a/src/test/ui/variance/variance-invariant-arg-object.nll.stderr
+++ b/src/test/ui/variance/variance-invariant-arg-object.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-arg-object.rs:11:5
+  --> $DIR/variance-invariant-arg-object.rs:15:5
    |
 LL | fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     v
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-arg-object.rs:18:5
+  --> $DIR/variance-invariant-arg-object.rs:24:5
    |
 LL | fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-invariant-arg-object.rs b/src/test/ui/variance/variance-invariant-arg-object.rs
index 886d263c457..cc8820fbac6 100644
--- a/src/test/ui/variance/variance-invariant-arg-object.rs
+++ b/src/test/ui/variance/variance-invariant-arg-object.rs
@@ -1,5 +1,9 @@
 #![allow(dead_code)]
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> : 'static {
     fn get(&self, t: T) -> T;
 }
@@ -8,14 +12,18 @@ fn get_min_from_max<'min, 'max>(v: Box<dyn Get<&'max i32>>)
                                 -> Box<dyn Get<&'min i32>>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>(v: Box<dyn Get<&'min i32>>)
                                    -> Box<dyn Get<&'max i32>>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() { }
diff --git a/src/test/ui/variance/variance-covariant-arg-trait-match.stderr b/src/test/ui/variance/variance-invariant-arg-trait-match.base.stderr
index eb1766b096c..fe284682153 100644
--- a/src/test/ui/variance/variance-covariant-arg-trait-match.stderr
+++ b/src/test/ui/variance/variance-invariant-arg-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-arg-trait-match.rs:14:5
+  --> $DIR/variance-invariant-arg-trait-match.rs:14:5
    |
 LL |     impls_get::<G,&'min i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<G,&'min i32>()
    = note: expected type `Get<&'min i32>`
               found type `Get<&'max i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-arg-trait-match.rs:10:21
+  --> $DIR/variance-invariant-arg-trait-match.rs:11:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-arg-trait-match.rs:10:27
+  --> $DIR/variance-invariant-arg-trait-match.rs:11:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-arg-trait-match.rs:20:5
+  --> $DIR/variance-invariant-arg-trait-match.rs:22:5
    |
 LL |     impls_get::<G,&'max i32>()
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<G,&'max i32>()
    = note: expected type `Get<&'max i32>`
               found type `Get<&'min i32>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-arg-trait-match.rs:17:21
+  --> $DIR/variance-invariant-arg-trait-match.rs:19:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-arg-trait-match.rs:17:27
+  --> $DIR/variance-invariant-arg-trait-match.rs:19:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-invariant-arg-trait-match.nll.stderr b/src/test/ui/variance/variance-invariant-arg-trait-match.nll.stderr
index 2909e81fcbf..74d2745cbbe 100644
--- a/src/test/ui/variance/variance-invariant-arg-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-invariant-arg-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-arg-trait-match.rs:10:5
+  --> $DIR/variance-invariant-arg-trait-match.rs:14:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<G,&'min i32>()
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-arg-trait-match.rs:16:5
+  --> $DIR/variance-invariant-arg-trait-match.rs:22:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-invariant-arg-trait-match.rs b/src/test/ui/variance/variance-invariant-arg-trait-match.rs
index 97d0fdd98e4..498dd574bb3 100644
--- a/src/test/ui/variance/variance-invariant-arg-trait-match.rs
+++ b/src/test/ui/variance/variance-invariant-arg-trait-match.rs
@@ -1,5 +1,9 @@
 #![allow(dead_code)]
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get<T> {
     fn get(&self, t: T) -> T;
 }
@@ -7,13 +11,17 @@ trait Get<T> {
 fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, G : Get<&'max i32>
 {
-    impls_get::<G,&'min i32>() //~ ERROR mismatched types
+    impls_get::<G,&'min i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
     where 'max : 'min, G : Get<&'min i32>
 {
-    impls_get::<G,&'max i32>() //~ ERROR mismatched types
+    impls_get::<G,&'max i32>()
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G,T>() where G : Get<T> { }
diff --git a/src/test/ui/variance/variance-covariant-self-trait-match.stderr b/src/test/ui/variance/variance-invariant-self-trait-match.base.stderr
index b0bcb2e8422..a2589f0ceee 100644
--- a/src/test/ui/variance/variance-covariant-self-trait-match.stderr
+++ b/src/test/ui/variance/variance-invariant-self-trait-match.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-self-trait-match.rs:14:5
+  --> $DIR/variance-invariant-self-trait-match.rs:14:5
    |
 LL |     impls_get::<&'min G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     impls_get::<&'min G>();
    = note: expected type `<&'min G as Get>`
               found type `<&'max G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-self-trait-match.rs:10:21
+  --> $DIR/variance-invariant-self-trait-match.rs:11:21
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-self-trait-match.rs:10:27
+  --> $DIR/variance-invariant-self-trait-match.rs:11:27
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                           ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-covariant-self-trait-match.rs:20:5
+  --> $DIR/variance-invariant-self-trait-match.rs:22:5
    |
 LL |     impls_get::<&'max G>();
    |     ^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     impls_get::<&'max G>();
    = note: expected type `<&'max G as Get>`
               found type `<&'min G as Get>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-covariant-self-trait-match.rs:17:21
+  --> $DIR/variance-invariant-self-trait-match.rs:19:21
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-covariant-self-trait-match.rs:17:27
+  --> $DIR/variance-invariant-self-trait-match.rs:19:27
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                           ^^^^
diff --git a/src/test/ui/variance/variance-invariant-self-trait-match.nll.stderr b/src/test/ui/variance/variance-invariant-self-trait-match.nll.stderr
index 01b2c8803ae..9d16e89450d 100644
--- a/src/test/ui/variance/variance-invariant-self-trait-match.nll.stderr
+++ b/src/test/ui/variance/variance-invariant-self-trait-match.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-self-trait-match.rs:10:5
+  --> $DIR/variance-invariant-self-trait-match.rs:14:5
    |
 LL | fn get_min_from_max<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
@@ -12,7 +12,7 @@ LL |     impls_get::<&'min G>();
    = help: consider adding the following bound: `'min: 'max`
 
 error: lifetime may not live long enough
-  --> $DIR/variance-invariant-self-trait-match.rs:16:5
+  --> $DIR/variance-invariant-self-trait-match.rs:22:5
    |
 LL | fn get_max_from_min<'min, 'max, G>()
    |                     ----  ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-invariant-self-trait-match.rs b/src/test/ui/variance/variance-invariant-self-trait-match.rs
index 678eefa634b..0f3176b14b4 100644
--- a/src/test/ui/variance/variance-invariant-self-trait-match.rs
+++ b/src/test/ui/variance/variance-invariant-self-trait-match.rs
@@ -1,5 +1,9 @@
 #![allow(dead_code)]
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Get {
     fn get(&self) -> Self;
 }
@@ -7,13 +11,17 @@ trait Get {
 fn get_min_from_max<'min, 'max, G>()
     where 'max : 'min, &'max G : Get, G : 'max
 {
-    impls_get::<&'min G>(); //~ ERROR mismatched types
+    impls_get::<&'min G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn get_max_from_min<'min, 'max, G>()
     where 'max : 'min, &'min G : Get, G : 'min
 {
-    impls_get::<&'max G>(); //~ ERROR mismatched types
+    impls_get::<&'max G>();
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn impls_get<G>() where G : Get { }
diff --git a/src/test/ui/variance/variance-trait-matching.stderr b/src/test/ui/variance/variance-trait-matching.base.stderr
index 514153103be..8872620e38a 100644
--- a/src/test/ui/variance/variance-trait-matching.stderr
+++ b/src/test/ui/variance/variance-trait-matching.base.stderr
@@ -1,5 +1,5 @@
 error[E0621]: explicit lifetime required in the type of `get`
-  --> $DIR/variance-trait-matching.rs:24:5
+  --> $DIR/variance-trait-matching.rs:28:5
    |
 LL | fn get<'a, G>(get: &G) -> i32
    |                    -- help: add explicit lifetime `'a` to the type of `get`: `&'a G`
diff --git a/src/test/ui/variance/variance-trait-matching.nll.stderr b/src/test/ui/variance/variance-trait-matching.nll.stderr
index 3308cc6d250..52c5eed3167 100644
--- a/src/test/ui/variance/variance-trait-matching.nll.stderr
+++ b/src/test/ui/variance/variance-trait-matching.nll.stderr
@@ -1,5 +1,5 @@
 error[E0621]: explicit lifetime required in the type of `get`
-  --> $DIR/variance-trait-matching.rs:24:5
+  --> $DIR/variance-trait-matching.rs:28:5
    |
 LL | fn get<'a, G>(get: &G) -> i32
    |                    -- help: add explicit lifetime `'a` to the type of `get`: `&'a G`
diff --git a/src/test/ui/variance/variance-trait-matching.rs b/src/test/ui/variance/variance-trait-matching.rs
index b4efee7d604..993db93533e 100644
--- a/src/test/ui/variance/variance-trait-matching.rs
+++ b/src/test/ui/variance/variance-trait-matching.rs
@@ -1,5 +1,9 @@
 #![allow(dead_code)]
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 // Get<T> is covariant in T
 trait Get<T> {
     fn get(&self) -> T;
diff --git a/src/test/ui/variance/variance-use-contravariant-struct-1.stderr b/src/test/ui/variance/variance-use-contravariant-struct-1.base.stderr
index ec0cb22cdb6..a354aa52b5c 100644
--- a/src/test/ui/variance/variance-use-contravariant-struct-1.stderr
+++ b/src/test/ui/variance/variance-use-contravariant-struct-1.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-use-contravariant-struct-1.rs:12:5
+  --> $DIR/variance-use-contravariant-struct-1.rs:14:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,12 +7,12 @@ LL |     v
    = note: expected struct `SomeStruct<&'min ()>`
               found struct `SomeStruct<&'max ()>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-use-contravariant-struct-1.rs:8:8
+  --> $DIR/variance-use-contravariant-struct-1.rs:10:8
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |        ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-use-contravariant-struct-1.rs:8:13
+  --> $DIR/variance-use-contravariant-struct-1.rs:10:13
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |             ^^^^
diff --git a/src/test/ui/variance/variance-use-contravariant-struct-1.nll.stderr b/src/test/ui/variance/variance-use-contravariant-struct-1.nll.stderr
index 837c70ca313..9549a8c08af 100644
--- a/src/test/ui/variance/variance-use-contravariant-struct-1.nll.stderr
+++ b/src/test/ui/variance/variance-use-contravariant-struct-1.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-use-contravariant-struct-1.rs:12:5
+  --> $DIR/variance-use-contravariant-struct-1.rs:14:5
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |        ---- ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-use-contravariant-struct-1.rs b/src/test/ui/variance/variance-use-contravariant-struct-1.rs
index 8a02ef4ec85..b55f5e76775 100644
--- a/src/test/ui/variance/variance-use-contravariant-struct-1.rs
+++ b/src/test/ui/variance/variance-use-contravariant-struct-1.rs
@@ -1,7 +1,9 @@
 // Test various uses of structs with distint variances to make sure
 // they permit lifetimes to be approximated as expected.
 
-
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
 
 struct SomeStruct<T>(fn(T));
 
@@ -9,7 +11,9 @@ fn foo<'min,'max>(v: SomeStruct<&'max ()>)
                   -> SomeStruct<&'min ()>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 
diff --git a/src/test/ui/variance/variance-use-covariant-struct-1.stderr b/src/test/ui/variance/variance-use-covariant-struct-1.base.stderr
index 0c0071cf9e1..542d44c2709 100644
--- a/src/test/ui/variance/variance-use-covariant-struct-1.stderr
+++ b/src/test/ui/variance/variance-use-covariant-struct-1.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-use-covariant-struct-1.rs:10:5
+  --> $DIR/variance-use-covariant-struct-1.rs:14:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,12 +7,12 @@ LL |     v
    = note: expected struct `SomeStruct<&'max ()>`
               found struct `SomeStruct<&'min ()>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-use-covariant-struct-1.rs:6:8
+  --> $DIR/variance-use-covariant-struct-1.rs:10:8
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'min ()>)
    |        ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-use-covariant-struct-1.rs:6:13
+  --> $DIR/variance-use-covariant-struct-1.rs:10:13
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'min ()>)
    |             ^^^^
diff --git a/src/test/ui/variance/variance-use-covariant-struct-1.nll.stderr b/src/test/ui/variance/variance-use-covariant-struct-1.nll.stderr
index bab858c5acb..2fac827a0fb 100644
--- a/src/test/ui/variance/variance-use-covariant-struct-1.nll.stderr
+++ b/src/test/ui/variance/variance-use-covariant-struct-1.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-use-covariant-struct-1.rs:10:5
+  --> $DIR/variance-use-covariant-struct-1.rs:14:5
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'min ()>)
    |        ---- ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-use-covariant-struct-1.rs b/src/test/ui/variance/variance-use-covariant-struct-1.rs
index e19a35bdfac..3e3e76d9792 100644
--- a/src/test/ui/variance/variance-use-covariant-struct-1.rs
+++ b/src/test/ui/variance/variance-use-covariant-struct-1.rs
@@ -1,13 +1,19 @@
 // Test that a covariant struct does not permit the lifetime of a
 // reference to be enlarged.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 struct SomeStruct<T>(T);
 
 fn foo<'min,'max>(v: SomeStruct<&'min ()>)
                   -> SomeStruct<&'max ()>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn main() { }
diff --git a/src/test/ui/variance/variance-use-invariant-struct-1.stderr b/src/test/ui/variance/variance-use-invariant-struct-1.base.stderr
index 76e4bd76b99..02b4e91f781 100644
--- a/src/test/ui/variance/variance-use-invariant-struct-1.stderr
+++ b/src/test/ui/variance/variance-use-invariant-struct-1.base.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/variance-use-invariant-struct-1.rs:12:5
+  --> $DIR/variance-use-invariant-struct-1.rs:14:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -7,18 +7,18 @@ LL |     v
    = note: expected struct `SomeStruct<&'min ()>`
               found struct `SomeStruct<&'max ()>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-use-invariant-struct-1.rs:8:8
+  --> $DIR/variance-use-invariant-struct-1.rs:10:8
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |        ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-use-invariant-struct-1.rs:8:13
+  --> $DIR/variance-use-invariant-struct-1.rs:10:13
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |             ^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/variance-use-invariant-struct-1.rs:19:5
+  --> $DIR/variance-use-invariant-struct-1.rs:23:5
    |
 LL |     v
    |     ^ lifetime mismatch
@@ -26,12 +26,12 @@ LL |     v
    = note: expected struct `SomeStruct<&'max ()>`
               found struct `SomeStruct<&'min ()>`
 note: the lifetime `'min` as defined here...
-  --> $DIR/variance-use-invariant-struct-1.rs:15:8
+  --> $DIR/variance-use-invariant-struct-1.rs:19:8
    |
 LL | fn bar<'min,'max>(v: SomeStruct<&'min ()>)
    |        ^^^^
 note: ...does not necessarily outlive the lifetime `'max` as defined here
-  --> $DIR/variance-use-invariant-struct-1.rs:15:13
+  --> $DIR/variance-use-invariant-struct-1.rs:19:13
    |
 LL | fn bar<'min,'max>(v: SomeStruct<&'min ()>)
    |             ^^^^
diff --git a/src/test/ui/variance/variance-use-invariant-struct-1.nll.stderr b/src/test/ui/variance/variance-use-invariant-struct-1.nll.stderr
index f1df2a88b6b..429919c8de1 100644
--- a/src/test/ui/variance/variance-use-invariant-struct-1.nll.stderr
+++ b/src/test/ui/variance/variance-use-invariant-struct-1.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/variance-use-invariant-struct-1.rs:12:5
+  --> $DIR/variance-use-invariant-struct-1.rs:14:5
    |
 LL | fn foo<'min,'max>(v: SomeStruct<&'max ()>)
    |        ---- ---- lifetime `'max` defined here
@@ -15,7 +15,7 @@ LL |     v
    = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: lifetime may not live long enough
-  --> $DIR/variance-use-invariant-struct-1.rs:19:5
+  --> $DIR/variance-use-invariant-struct-1.rs:23:5
    |
 LL | fn bar<'min,'max>(v: SomeStruct<&'min ()>)
    |        ---- ---- lifetime `'max` defined here
diff --git a/src/test/ui/variance/variance-use-invariant-struct-1.rs b/src/test/ui/variance/variance-use-invariant-struct-1.rs
index 4772a9fb878..7be03514e01 100644
--- a/src/test/ui/variance/variance-use-invariant-struct-1.rs
+++ b/src/test/ui/variance/variance-use-invariant-struct-1.rs
@@ -1,7 +1,9 @@
 // Test various uses of structs with distint variances to make sure
 // they permit lifetimes to be approximated as expected.
 
-
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
 
 struct SomeStruct<T>(*mut T);
 
@@ -9,14 +11,18 @@ fn foo<'min,'max>(v: SomeStruct<&'max ()>)
                   -> SomeStruct<&'min ()>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn bar<'min,'max>(v: SomeStruct<&'min ()>)
                   -> SomeStruct<&'max ()>
     where 'max : 'min
 {
-    v //~ ERROR mismatched types
+    v
+    //[base]~^ ERROR mismatched types
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 
diff --git a/src/test/ui/wf/wf-static-method.stderr b/src/test/ui/wf/wf-static-method.base.stderr
index c663931c5d6..186ab2790a3 100644
--- a/src/test/ui/wf/wf-static-method.stderr
+++ b/src/test/ui/wf/wf-static-method.base.stderr
@@ -1,131 +1,131 @@
 error[E0312]: lifetime of reference outlives lifetime of borrowed content...
-  --> $DIR/wf-static-method.rs:17:9
+  --> $DIR/wf-static-method.rs:21:9
    |
 LL |         u
    |         ^
    |
 note: ...the reference is valid for the lifetime `'a` as defined here...
-  --> $DIR/wf-static-method.rs:14:6
+  --> $DIR/wf-static-method.rs:18:6
    |
 LL | impl<'a, 'b> Foo<'a, 'b, Evil<'a, 'b>> for () {
    |      ^^
 note: ...but the borrowed content is only valid for the lifetime `'b` as defined here
-  --> $DIR/wf-static-method.rs:14:10
+  --> $DIR/wf-static-method.rs:18:10
    |
 LL | impl<'a, 'b> Foo<'a, 'b, Evil<'a, 'b>> for () {
    |          ^^
 
 error[E0478]: lifetime bound not satisfied
-  --> $DIR/wf-static-method.rs:26:18
+  --> $DIR/wf-static-method.rs:32:18
    |
 LL |         let me = Self::make_me();
    |                  ^^^^
    |
 note: lifetime parameter instantiated with the lifetime `'b` as defined here
-  --> $DIR/wf-static-method.rs:23:10
+  --> $DIR/wf-static-method.rs:29:10
    |
 LL | impl<'a, 'b> Foo<'a, 'b, ()> for IndirectEvil<'a, 'b> {
    |          ^^
 note: but lifetime parameter must outlive the lifetime `'a` as defined here
-  --> $DIR/wf-static-method.rs:23:6
+  --> $DIR/wf-static-method.rs:29:6
    |
 LL | impl<'a, 'b> Foo<'a, 'b, ()> for IndirectEvil<'a, 'b> {
    |      ^^
 
 error[E0312]: lifetime of reference outlives lifetime of borrowed content...
-  --> $DIR/wf-static-method.rs:33:9
+  --> $DIR/wf-static-method.rs:41:9
    |
 LL |         u
    |         ^
    |
 note: ...the reference is valid for the lifetime `'a` as defined here...
-  --> $DIR/wf-static-method.rs:31:6
+  --> $DIR/wf-static-method.rs:39:6
    |
 LL | impl<'a, 'b> Evil<'a, 'b> {
    |      ^^
 note: ...but the borrowed content is only valid for the lifetime `'b` as defined here
-  --> $DIR/wf-static-method.rs:31:10
+  --> $DIR/wf-static-method.rs:39:10
    |
 LL | impl<'a, 'b> Evil<'a, 'b> {
    |          ^^
 
 error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'b` due to conflicting requirements
-  --> $DIR/wf-static-method.rs:41:5
+  --> $DIR/wf-static-method.rs:51:5
    |
 LL |     <()>::static_evil(b)
    |     ^^^^^^^^^^^^^^^^^
    |
 note: first, the lifetime cannot outlive the lifetime `'b` as defined here...
-  --> $DIR/wf-static-method.rs:40:13
+  --> $DIR/wf-static-method.rs:50:13
    |
 LL | fn evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |             ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:41:23
+  --> $DIR/wf-static-method.rs:51:23
    |
 LL |     <()>::static_evil(b)
    |                       ^
 note: but, the lifetime must be valid for the lifetime `'a` as defined here...
-  --> $DIR/wf-static-method.rs:40:9
+  --> $DIR/wf-static-method.rs:50:9
    |
 LL | fn evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |         ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:41:5
+  --> $DIR/wf-static-method.rs:51:5
    |
 LL |     <()>::static_evil(b)
    |     ^^^^^^^^^^^^^^^^^^^^
 
 error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'b` due to conflicting requirements
-  --> $DIR/wf-static-method.rs:45:5
+  --> $DIR/wf-static-method.rs:57:5
    |
 LL |     <IndirectEvil>::static_evil(b)
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
 note: first, the lifetime cannot outlive the lifetime `'b` as defined here...
-  --> $DIR/wf-static-method.rs:44:22
+  --> $DIR/wf-static-method.rs:56:22
    |
 LL | fn indirect_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                      ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:45:33
+  --> $DIR/wf-static-method.rs:57:33
    |
 LL |     <IndirectEvil>::static_evil(b)
    |                                 ^
 note: but, the lifetime must be valid for the lifetime `'a` as defined here...
-  --> $DIR/wf-static-method.rs:44:18
+  --> $DIR/wf-static-method.rs:56:18
    |
 LL | fn indirect_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                  ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:45:5
+  --> $DIR/wf-static-method.rs:57:5
    |
 LL |     <IndirectEvil>::static_evil(b)
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'b` due to conflicting requirements
-  --> $DIR/wf-static-method.rs:50:5
+  --> $DIR/wf-static-method.rs:63:5
    |
 LL |     <Evil>::inherent_evil(b)
    |     ^^^^^^^^^^^^^^^^^^^^^
    |
 note: first, the lifetime cannot outlive the lifetime `'b` as defined here...
-  --> $DIR/wf-static-method.rs:49:22
+  --> $DIR/wf-static-method.rs:62:22
    |
 LL | fn inherent_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                      ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:50:27
+  --> $DIR/wf-static-method.rs:63:27
    |
 LL |     <Evil>::inherent_evil(b)
    |                           ^
 note: but, the lifetime must be valid for the lifetime `'a` as defined here...
-  --> $DIR/wf-static-method.rs:49:18
+  --> $DIR/wf-static-method.rs:62:18
    |
 LL | fn inherent_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                  ^^
 note: ...so that reference does not outlive borrowed content
-  --> $DIR/wf-static-method.rs:50:5
+  --> $DIR/wf-static-method.rs:63:5
    |
 LL |     <Evil>::inherent_evil(b)
    |     ^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/wf/wf-static-method.nll.stderr b/src/test/ui/wf/wf-static-method.nll.stderr
index 26504311195..7556d8e694d 100644
--- a/src/test/ui/wf/wf-static-method.nll.stderr
+++ b/src/test/ui/wf/wf-static-method.nll.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:17:9
+  --> $DIR/wf-static-method.rs:21:9
    |
 LL | impl<'a, 'b> Foo<'a, 'b, Evil<'a, 'b>> for () {
    |      --  -- lifetime `'b` defined here
@@ -12,7 +12,7 @@ LL |         u
    = help: consider adding the following bound: `'b: 'a`
 
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:26:18
+  --> $DIR/wf-static-method.rs:32:18
    |
 LL | impl<'a, 'b> Foo<'a, 'b, ()> for IndirectEvil<'a, 'b> {
    |      --  -- lifetime `'b` defined here
@@ -25,7 +25,7 @@ LL |         let me = Self::make_me();
    = help: consider adding the following bound: `'b: 'a`
 
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:33:9
+  --> $DIR/wf-static-method.rs:41:9
    |
 LL | impl<'a, 'b> Evil<'a, 'b> {
    |      --  -- lifetime `'b` defined here
@@ -38,7 +38,7 @@ LL |         u
    = help: consider adding the following bound: `'b: 'a`
 
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:41:5
+  --> $DIR/wf-static-method.rs:51:5
    |
 LL | fn evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |         --  -- lifetime `'b` defined here
@@ -50,7 +50,7 @@ LL |     <()>::static_evil(b)
    = help: consider adding the following bound: `'b: 'a`
 
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:45:5
+  --> $DIR/wf-static-method.rs:57:5
    |
 LL | fn indirect_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                  --  -- lifetime `'b` defined here
@@ -62,7 +62,7 @@ LL |     <IndirectEvil>::static_evil(b)
    = help: consider adding the following bound: `'b: 'a`
 
 error: lifetime may not live long enough
-  --> $DIR/wf-static-method.rs:50:5
+  --> $DIR/wf-static-method.rs:63:5
    |
 LL | fn inherent_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
    |                  --  -- lifetime `'b` defined here
diff --git a/src/test/ui/wf/wf-static-method.rs b/src/test/ui/wf/wf-static-method.rs
index 6e805d61265..83557ce667b 100644
--- a/src/test/ui/wf/wf-static-method.rs
+++ b/src/test/ui/wf/wf-static-method.rs
@@ -4,6 +4,10 @@
 // static inherent methods isn't quite working - need to
 // fix that before removing the check.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 trait Foo<'a, 'b, T>: Sized {
     fn make_me() -> Self { loop {} }
     fn static_evil(u: &'b u32) -> &'a u32;
@@ -14,7 +18,9 @@ struct Evil<'a, 'b: 'a>(Option<&'a &'b ()>);
 impl<'a, 'b> Foo<'a, 'b, Evil<'a, 'b>> for () {
     fn make_me() -> Self { }
     fn static_evil(u: &'b u32) -> &'a u32 {
-        u //~ ERROR E0312
+        u
+        //[base]~^ ERROR E0312
+        //[nll]~^^ ERROR lifetime may not live long enough
     }
 }
 
@@ -23,14 +29,18 @@ struct IndirectEvil<'a, 'b: 'a>(Option<&'a &'b ()>);
 impl<'a, 'b> Foo<'a, 'b, ()> for IndirectEvil<'a, 'b> {
     fn make_me() -> Self { IndirectEvil(None) }
     fn static_evil(u: &'b u32) -> &'a u32 {
-        let me = Self::make_me(); //~ ERROR lifetime bound not satisfied
+        let me = Self::make_me();
+        //[base]~^ ERROR lifetime bound not satisfied
+        //[nll]~^^ ERROR lifetime may not live long enough
         loop {} // (`me` could be used for the lifetime transmute).
     }
 }
 
 impl<'a, 'b> Evil<'a, 'b> {
     fn inherent_evil(u: &'b u32) -> &'a u32 {
-        u //~ ERROR E0312
+        u
+        //[base]~^ ERROR E0312
+        //[nll]~^^ ERROR lifetime may not live long enough
     }
 }
 
@@ -38,17 +48,21 @@ impl<'a, 'b> Evil<'a, 'b> {
 // *check* that they hold.
 
 fn evil<'a, 'b>(b: &'b u32) -> &'a u32 {
-    <()>::static_evil(b) //~ ERROR cannot infer an appropriate lifetime
+    <()>::static_evil(b)
+    //[base]~^ ERROR cannot infer an appropriate lifetime
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn indirect_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
     <IndirectEvil>::static_evil(b)
-    //~^ ERROR cannot infer an appropriate lifetime
+    //[base]~^ ERROR cannot infer an appropriate lifetime
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 fn inherent_evil<'a, 'b>(b: &'b u32) -> &'a u32 {
     <Evil>::inherent_evil(b)
-    //~^ ERROR cannot infer an appropriate lifetime
+    //[base]~^ ERROR cannot infer an appropriate lifetime
+    //[nll]~^^ ERROR lifetime may not live long enough
 }
 
 
diff --git a/src/test/ui/where-clauses/where-for-self-2.stderr b/src/test/ui/where-clauses/where-for-self-2.base.stderr
index 6da46e20c09..c09610cd696 100644
--- a/src/test/ui/where-clauses/where-for-self-2.stderr
+++ b/src/test/ui/where-clauses/where-for-self-2.base.stderr
@@ -1,5 +1,5 @@
 error: implementation of `Bar` is not general enough
-  --> $DIR/where-for-self-2.rs:23:5
+  --> $DIR/where-for-self-2.rs:27:5
    |
 LL |     foo(&X);
    |     ^^^ implementation of `Bar` is not general enough
diff --git a/src/test/ui/where-clauses/where-for-self-2.nll.stderr b/src/test/ui/where-clauses/where-for-self-2.nll.stderr
index f65db78fc89..92d1b2121a6 100644
--- a/src/test/ui/where-clauses/where-for-self-2.nll.stderr
+++ b/src/test/ui/where-clauses/where-for-self-2.nll.stderr
@@ -1,5 +1,5 @@
 error: implementation of `Bar` is not general enough
-  --> $DIR/where-for-self-2.rs:23:5
+  --> $DIR/where-for-self-2.rs:27:5
    |
 LL |     foo(&X);
    |     ^^^^^^^ implementation of `Bar` is not general enough
diff --git a/src/test/ui/where-clauses/where-for-self-2.rs b/src/test/ui/where-clauses/where-for-self-2.rs
index 37c6954fd52..4e4e0ec912e 100644
--- a/src/test/ui/where-clauses/where-for-self-2.rs
+++ b/src/test/ui/where-clauses/where-for-self-2.rs
@@ -3,6 +3,10 @@
 // specific lifetime is not enough to satisfy the `for<'a> ...` constraint, which
 // should require *all* lifetimes.
 
+// revisions: base nll
+// ignore-compare-mode-nll
+//[nll] compile-flags: -Z borrowck=mir
+
 static X: &'static u32 = &42;
 
 trait Bar {