diff options
| author | Jack Huey <31162821+jackh726@users.noreply.github.com> | 2022-05-21 15:26:58 -0400 |
|---|---|---|
| committer | Jack Huey <31162821+jackh726@users.noreply.github.com> | 2022-05-22 15:21:27 -0400 |
| commit | 62806f75369f810ddde1b28e6aca7b8a2792aac3 (patch) | |
| tree | d673cc87e23ba1938d6bd1be53060ac19aa1910c | |
| parent | 12a2d7967c48f418e99ed4ff8fa5e662e1f34ffb (diff) | |
| download | rust-62806f75369f810ddde1b28e6aca7b8a2792aac3.tar.gz rust-62806f75369f810ddde1b28e6aca7b8a2792aac3.zip | |
Use revisions for NLL in generator
| -rw-r--r-- | src/test/ui/generator/auto-trait-regions.base.stderr (renamed from src/test/ui/generator/auto-trait-regions.stderr) | 8 | ||||
| -rw-r--r-- | src/test/ui/generator/auto-trait-regions.nll.stderr | 12 | ||||
| -rw-r--r-- | src/test/ui/generator/auto-trait-regions.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/generator/generator-region-requirements.base.stderr (renamed from src/test/ui/generator/generator-region-requirements.stderr) | 2 | ||||
| -rw-r--r-- | src/test/ui/generator/generator-region-requirements.nll.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/generator/generator-region-requirements.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/generator/resume-arg-late-bound.base.stderr (renamed from src/test/ui/generator/resume-arg-late-bound.stderr) | 12 | ||||
| -rw-r--r-- | src/test/ui/generator/resume-arg-late-bound.nll.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/generator/resume-arg-late-bound.rs | 6 |
9 files changed, 39 insertions, 24 deletions
diff --git a/src/test/ui/generator/auto-trait-regions.stderr b/src/test/ui/generator/auto-trait-regions.base.stderr index da3d3249f0e..d44c8eb1b82 100644 --- a/src/test/ui/generator/auto-trait-regions.stderr +++ b/src/test/ui/generator/auto-trait-regions.base.stderr @@ -1,5 +1,5 @@ error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:31:5 + --> $DIR/auto-trait-regions.rs:35:5 | LL | assert_foo(gen); | ^^^^^^^^^^ implementation of `Foo` is not general enough @@ -8,7 +8,7 @@ LL | assert_foo(gen); = note: ...but `Foo` is actually implemented for the type `&'static OnlyFooIfStaticRef` error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:31:5 + --> $DIR/auto-trait-regions.rs:35:5 | LL | assert_foo(gen); | ^^^^^^^^^^ implementation of `Foo` is not general enough @@ -17,7 +17,7 @@ LL | assert_foo(gen); = note: ...but `Foo` is actually implemented for the type `&'static OnlyFooIfStaticRef` error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:50:5 + --> $DIR/auto-trait-regions.rs:56:5 | LL | assert_foo(gen); | ^^^^^^^^^^ implementation of `Foo` is not general enough @@ -26,7 +26,7 @@ LL | assert_foo(gen); = note: ...but `Foo` is actually implemented for the type `A<'_, '2>`, for some specific lifetime `'2` error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:50:5 + --> $DIR/auto-trait-regions.rs:56:5 | LL | assert_foo(gen); | ^^^^^^^^^^ implementation of `Foo` is not general enough diff --git a/src/test/ui/generator/auto-trait-regions.nll.stderr b/src/test/ui/generator/auto-trait-regions.nll.stderr index 76970fb7872..25456881fa0 100644 --- a/src/test/ui/generator/auto-trait-regions.nll.stderr +++ b/src/test/ui/generator/auto-trait-regions.nll.stderr @@ -1,31 +1,31 @@ error[E0716]: temporary value dropped while borrowed - --> $DIR/auto-trait-regions.rs:46:24 + --> $DIR/auto-trait-regions.rs:50:24 | LL | let a = A(&mut true, &mut true, No); | ^^^^ - temporary value is freed at the end of this statement | | | creates a temporary which is freed while still in use -LL | yield; +... LL | assert_foo(a); | - borrow later used here | = note: consider using a `let` binding to create a longer lived value error[E0716]: temporary value dropped while borrowed - --> $DIR/auto-trait-regions.rs:46:35 + --> $DIR/auto-trait-regions.rs:50:35 | LL | let a = A(&mut true, &mut true, No); | ^^^^ - temporary value is freed at the end of this statement | | | creates a temporary which is freed while still in use -LL | yield; +... LL | assert_foo(a); | - borrow later used here | = note: consider using a `let` binding to create a longer lived value error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:31:5 + --> $DIR/auto-trait-regions.rs:35:5 | LL | assert_foo(gen); | ^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough @@ -34,7 +34,7 @@ LL | assert_foo(gen); = note: ...but `Foo` is actually implemented for the type `&'static OnlyFooIfStaticRef` error: implementation of `Foo` is not general enough - --> $DIR/auto-trait-regions.rs:50:5 + --> $DIR/auto-trait-regions.rs:56:5 | LL | assert_foo(gen); | ^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough diff --git a/src/test/ui/generator/auto-trait-regions.rs b/src/test/ui/generator/auto-trait-regions.rs index 8f1e4f1b66f..98af4a39391 100644 --- a/src/test/ui/generator/auto-trait-regions.rs +++ b/src/test/ui/generator/auto-trait-regions.rs @@ -1,3 +1,7 @@ +// ignore-compare-mode-nll +// revisions: base nll +// [nll]compile-flags: -Zborrowck=mir + #![feature(generators)] #![feature(auto_traits)] #![feature(negative_impls)] @@ -30,7 +34,7 @@ fn main() { }; assert_foo(gen); //~^ ERROR implementation of `Foo` is not general enough - //~| ERROR implementation of `Foo` is not general enough + //[base]~^^ ERROR implementation of `Foo` is not general enough // Allow impls which matches any lifetime let x = &OnlyFooIfRef(No); @@ -44,10 +48,12 @@ fn main() { // Disallow impls which relates lifetimes in the generator interior let gen = || { let a = A(&mut true, &mut true, No); + //[nll]~^ temporary value dropped while borrowed + //[nll]~| temporary value dropped while borrowed yield; assert_foo(a); }; assert_foo(gen); //~^ ERROR not general enough - //~| ERROR not general enough + //[base]~^^ ERROR not general enough } diff --git a/src/test/ui/generator/generator-region-requirements.stderr b/src/test/ui/generator/generator-region-requirements.base.stderr index 30d67050b90..89f6a81ad3b 100644 --- a/src/test/ui/generator/generator-region-requirements.stderr +++ b/src/test/ui/generator/generator-region-requirements.base.stderr @@ -1,5 +1,5 @@ error[E0759]: `x` has an anonymous lifetime `'_` but it needs to satisfy a `'static` lifetime requirement - --> $DIR/generator-region-requirements.rs:8:9 + --> $DIR/generator-region-requirements.rs:12:9 | LL | fn dangle(x: &mut i32) -> &'static mut i32 { | -------- this data with an anonymous lifetime `'_`... diff --git a/src/test/ui/generator/generator-region-requirements.nll.stderr b/src/test/ui/generator/generator-region-requirements.nll.stderr index b4530cfda2b..9f54c6c9dc1 100644 --- a/src/test/ui/generator/generator-region-requirements.nll.stderr +++ b/src/test/ui/generator/generator-region-requirements.nll.stderr @@ -1,5 +1,5 @@ error: lifetime may not live long enough - --> $DIR/generator-region-requirements.rs:13:51 + --> $DIR/generator-region-requirements.rs:17:51 | LL | fn dangle(x: &mut i32) -> &'static mut i32 { | - let's call the lifetime of this reference `'1` diff --git a/src/test/ui/generator/generator-region-requirements.rs b/src/test/ui/generator/generator-region-requirements.rs index cec68509a66..ec718b17460 100644 --- a/src/test/ui/generator/generator-region-requirements.rs +++ b/src/test/ui/generator/generator-region-requirements.rs @@ -1,3 +1,7 @@ +// ignore-compare-mode-nll +// revisions: base nll +// [nll]compile-flags: -Zborrowck=mir + #![feature(generators, generator_trait)] use std::ops::{Generator, GeneratorState}; use std::pin::Pin; @@ -6,11 +10,12 @@ fn dangle(x: &mut i32) -> &'static mut i32 { let mut g = || { yield; x - //~^ ERROR `x` has an anonymous lifetime `'_` but it needs to satisfy a `'static` lifetime requirement [E0759] + //[base]~^ ERROR `x` has an anonymous lifetime `'_` but it needs to satisfy a `'static` lifetime requirement [E0759] }; loop { match Pin::new(&mut g).resume(()) { GeneratorState::Complete(c) => return c, + //[nll]~^ ERROR lifetime may not live long enough GeneratorState::Yielded(_) => (), } } diff --git a/src/test/ui/generator/resume-arg-late-bound.stderr b/src/test/ui/generator/resume-arg-late-bound.base.stderr index 5e60e33584e..8521951d0c9 100644 --- a/src/test/ui/generator/resume-arg-late-bound.stderr +++ b/src/test/ui/generator/resume-arg-late-bound.base.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/resume-arg-late-bound.rs:15:5 + --> $DIR/resume-arg-late-bound.rs:19:5 | LL | test(gen); | ^^^^ lifetime mismatch @@ -7,7 +7,7 @@ LL | test(gen); = note: expected type `for<'a> Generator<&'a mut bool>` found type `Generator<&mut bool>` note: the required lifetime does not necessarily outlive the anonymous lifetime #1 defined here - --> $DIR/resume-arg-late-bound.rs:11:15 + --> $DIR/resume-arg-late-bound.rs:15:15 | LL | let gen = |arg: &mut bool| { | _______________^ @@ -16,13 +16,13 @@ LL | | *arg = true; LL | | }; | |_____^ note: the lifetime requirement is introduced here - --> $DIR/resume-arg-late-bound.rs:8:17 + --> $DIR/resume-arg-late-bound.rs:12:17 | LL | fn test(a: impl for<'a> Generator<&'a mut bool>) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0308]: mismatched types - --> $DIR/resume-arg-late-bound.rs:15:5 + --> $DIR/resume-arg-late-bound.rs:19:5 | LL | test(gen); | ^^^^ lifetime mismatch @@ -30,7 +30,7 @@ LL | test(gen); = note: expected type `for<'a> Generator<&'a mut bool>` found type `Generator<&mut bool>` note: the anonymous lifetime #1 defined here doesn't meet the lifetime requirements - --> $DIR/resume-arg-late-bound.rs:11:15 + --> $DIR/resume-arg-late-bound.rs:15:15 | LL | let gen = |arg: &mut bool| { | _______________^ @@ -39,7 +39,7 @@ LL | | *arg = true; LL | | }; | |_____^ note: the lifetime requirement is introduced here - --> $DIR/resume-arg-late-bound.rs:8:17 + --> $DIR/resume-arg-late-bound.rs:12:17 | LL | fn test(a: impl for<'a> Generator<&'a mut bool>) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/generator/resume-arg-late-bound.nll.stderr b/src/test/ui/generator/resume-arg-late-bound.nll.stderr index b5144c607a8..868d1352f25 100644 --- a/src/test/ui/generator/resume-arg-late-bound.nll.stderr +++ b/src/test/ui/generator/resume-arg-late-bound.nll.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/resume-arg-late-bound.rs:15:5 + --> $DIR/resume-arg-late-bound.rs:19:5 | LL | test(gen); | ^^^^^^^^^ one type is more general than the other @@ -7,7 +7,7 @@ LL | test(gen); = note: expected type `for<'a> Generator<&'a mut bool>` found type `Generator<&mut bool>` note: the lifetime requirement is introduced here - --> $DIR/resume-arg-late-bound.rs:8:17 + --> $DIR/resume-arg-late-bound.rs:12:17 | LL | fn test(a: impl for<'a> Generator<&'a mut bool>) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/generator/resume-arg-late-bound.rs b/src/test/ui/generator/resume-arg-late-bound.rs index a8f657eaabe..b973d8a300a 100644 --- a/src/test/ui/generator/resume-arg-late-bound.rs +++ b/src/test/ui/generator/resume-arg-late-bound.rs @@ -1,3 +1,7 @@ +// ignore-compare-mode-nll +// revisions: base nll +// [nll]compile-flags: -Zborrowck=mir + //! Tests that we cannot produce a generator that accepts a resume argument //! with any lifetime and then stores it across a `yield`. @@ -14,5 +18,5 @@ fn main() { }; test(gen); //~^ ERROR mismatched types - //~| ERROR mismatched types + //[base]~^^ ERROR mismatched types } |
