From af0c44cb2908989159322a4f2bf6ce046a7be5fc Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:11:40 +0900 Subject: [PATCH 1/7] Add test for issue-54239 --- .../issue-54239-private-type-triggers-lint.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs diff --git a/src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs b/src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs new file mode 100644 index 0000000000000..16cf7ad52e4f9 --- /dev/null +++ b/src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs @@ -0,0 +1,17 @@ +// Regression test for #54239, shouldn't trigger lint. +// check-pass +// edition:2018 + +#![deny(missing_debug_implementations)] + +struct DontLookAtMe(i32); + +async fn secret() -> DontLookAtMe { + DontLookAtMe(41) +} + +pub async fn looking() -> i32 { // Shouldn't trigger lint here. + secret().await.0 +} + +fn main() {} From fc8be08a8e786514819ffff7c4239879afb8ea3c Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:11:58 +0900 Subject: [PATCH 2/7] Add test for issue-57200 --- src/test/ui/impl-trait/issue-57200.rs | 14 ++++++++++++++ src/test/ui/impl-trait/issue-57200.stderr | 8 ++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/test/ui/impl-trait/issue-57200.rs create mode 100644 src/test/ui/impl-trait/issue-57200.stderr diff --git a/src/test/ui/impl-trait/issue-57200.rs b/src/test/ui/impl-trait/issue-57200.rs new file mode 100644 index 0000000000000..9a7290b3b7524 --- /dev/null +++ b/src/test/ui/impl-trait/issue-57200.rs @@ -0,0 +1,14 @@ +// Regression test for #57200 + +#![feature(impl_trait_in_bindings)] +#![allow(incomplete_features)] + +fn bug<'a, 'b, T>() +where + 'a: 'b, +{ + let f: impl Fn(&'a T) -> &'b T = |x| x; + //~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported +} + +fn main() {} diff --git a/src/test/ui/impl-trait/issue-57200.stderr b/src/test/ui/impl-trait/issue-57200.stderr new file mode 100644 index 0000000000000..42fd0045315cd --- /dev/null +++ b/src/test/ui/impl-trait/issue-57200.stderr @@ -0,0 +1,8 @@ +error: lifetimes in impl Trait types in bindings are not currently supported + --> $DIR/issue-57200.rs:10:12 + | +LL | let f: impl Fn(&'a T) -> &'b T = |x| x; + | ^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + From 437c07f6621739037e52560f54a880acaaaf27ac Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:12:06 +0900 Subject: [PATCH 3/7] Add test for issue-57201 --- src/test/ui/impl-trait/issue-57201.rs | 14 ++++++++++++++ src/test/ui/impl-trait/issue-57201.stderr | 8 ++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/test/ui/impl-trait/issue-57201.rs create mode 100644 src/test/ui/impl-trait/issue-57201.stderr diff --git a/src/test/ui/impl-trait/issue-57201.rs b/src/test/ui/impl-trait/issue-57201.rs new file mode 100644 index 0000000000000..79b19b52d2061 --- /dev/null +++ b/src/test/ui/impl-trait/issue-57201.rs @@ -0,0 +1,14 @@ +// Regression test for #57201 + +#![feature(impl_trait_in_bindings)] +#![allow(incomplete_features)] + +fn bug<'a, 'b, T>() +where + 'a: 'b, +{ + let f: &impl Fn(&'a T) -> &'b T = &|x| x; + //~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported +} + +fn main() {} diff --git a/src/test/ui/impl-trait/issue-57201.stderr b/src/test/ui/impl-trait/issue-57201.stderr new file mode 100644 index 0000000000000..5defd15b6b545 --- /dev/null +++ b/src/test/ui/impl-trait/issue-57201.stderr @@ -0,0 +1,8 @@ +error: lifetimes in impl Trait types in bindings are not currently supported + --> $DIR/issue-57201.rs:10:13 + | +LL | let f: &impl Fn(&'a T) -> &'b T = &|x| x; + | ^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + From 0005f29d89e9b5ab59f9159acb7aab51b5dad187 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:12:25 +0900 Subject: [PATCH 4/7] Add test for issue-60473 --- src/test/ui/impl-trait/issue-60473.rs | 16 ++++++++++++++++ src/test/ui/impl-trait/issue-60473.stderr | 11 +++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/test/ui/impl-trait/issue-60473.rs create mode 100644 src/test/ui/impl-trait/issue-60473.stderr diff --git a/src/test/ui/impl-trait/issue-60473.rs b/src/test/ui/impl-trait/issue-60473.rs new file mode 100644 index 0000000000000..596d8a2dd741a --- /dev/null +++ b/src/test/ui/impl-trait/issue-60473.rs @@ -0,0 +1,16 @@ +// Regression test for #60473 + +#![feature(impl_trait_in_bindings)] +#![allow(incomplete_features)] + +struct A<'a>(&'a ()); + +trait Trait { +} + +impl Trait for () { +} + +fn main() { + let x: impl Trait = (); //~ ERROR: opaque type expands to a recursive type +} diff --git a/src/test/ui/impl-trait/issue-60473.stderr b/src/test/ui/impl-trait/issue-60473.stderr new file mode 100644 index 0000000000000..6a07f29727c1d --- /dev/null +++ b/src/test/ui/impl-trait/issue-60473.stderr @@ -0,0 +1,11 @@ +error[E0720]: opaque type expands to a recursive type + --> $DIR/issue-60473.rs:15:12 + | +LL | let x: impl Trait = (); + | ^^^^^^^^^^^^^ expands to a recursive type + | + = note: type resolves to itself + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0720`. From 95d478546ff3b3b3f533e6b86274bde432148ab3 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:12:41 +0900 Subject: [PATCH 5/7] Add test for issue-64620 --- src/test/ui/generator/issue-64620-yield-array-element.rs | 9 +++++++++ .../ui/generator/issue-64620-yield-array-element.stderr | 9 +++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/test/ui/generator/issue-64620-yield-array-element.rs create mode 100644 src/test/ui/generator/issue-64620-yield-array-element.stderr diff --git a/src/test/ui/generator/issue-64620-yield-array-element.rs b/src/test/ui/generator/issue-64620-yield-array-element.rs new file mode 100644 index 0000000000000..2cbe8f5161465 --- /dev/null +++ b/src/test/ui/generator/issue-64620-yield-array-element.rs @@ -0,0 +1,9 @@ +// Regression test for #64620 + +#![feature(generators)] + +pub fn crash(arr: [usize; 1]) { + yield arr[0]; //~ ERROR: yield expression outside of generator literal +} + +fn main() {} diff --git a/src/test/ui/generator/issue-64620-yield-array-element.stderr b/src/test/ui/generator/issue-64620-yield-array-element.stderr new file mode 100644 index 0000000000000..48383c2ed0824 --- /dev/null +++ b/src/test/ui/generator/issue-64620-yield-array-element.stderr @@ -0,0 +1,9 @@ +error[E0627]: yield expression outside of generator literal + --> $DIR/issue-64620-yield-array-element.rs:6:5 + | +LL | yield arr[0]; + | ^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0627`. From 579ce86d4b813c89eb8a483f79c427565b06c7d2 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 09:12:53 +0900 Subject: [PATCH 6/7] Add test for issue-67166 --- src/test/ui/impl-trait/issue-67166.rs | 11 +++++++++++ src/test/ui/impl-trait/issue-67166.stderr | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/test/ui/impl-trait/issue-67166.rs create mode 100644 src/test/ui/impl-trait/issue-67166.stderr diff --git a/src/test/ui/impl-trait/issue-67166.rs b/src/test/ui/impl-trait/issue-67166.rs new file mode 100644 index 0000000000000..a877d4cfe3bd7 --- /dev/null +++ b/src/test/ui/impl-trait/issue-67166.rs @@ -0,0 +1,11 @@ +// Regression test for #67166 + +#![feature(impl_trait_in_bindings)] +#![allow(incomplete_features)] + +pub fn run() { + let _foo: Box = Box::new(()); + //~^ ERROR: opaque type expands to a recursive type +} + +fn main() {} diff --git a/src/test/ui/impl-trait/issue-67166.stderr b/src/test/ui/impl-trait/issue-67166.stderr new file mode 100644 index 0000000000000..abf30f67d5f89 --- /dev/null +++ b/src/test/ui/impl-trait/issue-67166.stderr @@ -0,0 +1,11 @@ +error[E0720]: opaque type expands to a recursive type + --> $DIR/issue-67166.rs:7:19 + | +LL | let _foo: Box = Box::new(()); + | ^^^^^^^^^^^^^^ expands to a recursive type + | + = note: type resolves to itself + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0720`. From ef98ec055ea30466a83f0b0efb2e40ebd3f89011 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 9 Mar 2020 16:50:46 +0900 Subject: [PATCH 7/7] Add FIXMEs --- src/test/ui/impl-trait/issue-57200.rs | 1 + src/test/ui/impl-trait/issue-57200.stderr | 2 +- src/test/ui/impl-trait/issue-57201.rs | 1 + src/test/ui/impl-trait/issue-57201.stderr | 2 +- src/test/ui/impl-trait/issue-60473.rs | 3 ++- src/test/ui/impl-trait/issue-60473.stderr | 2 +- src/test/ui/impl-trait/issue-67166.rs | 2 +- src/test/ui/impl-trait/issue-67166.stderr | 2 +- 8 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/test/ui/impl-trait/issue-57200.rs b/src/test/ui/impl-trait/issue-57200.rs index 9a7290b3b7524..e0c71d1ac9a61 100644 --- a/src/test/ui/impl-trait/issue-57200.rs +++ b/src/test/ui/impl-trait/issue-57200.rs @@ -1,4 +1,5 @@ // Regression test for #57200 +// FIXME: The error is temporary hack, we'll revisit here at some point. #![feature(impl_trait_in_bindings)] #![allow(incomplete_features)] diff --git a/src/test/ui/impl-trait/issue-57200.stderr b/src/test/ui/impl-trait/issue-57200.stderr index 42fd0045315cd..b44f332d58ccd 100644 --- a/src/test/ui/impl-trait/issue-57200.stderr +++ b/src/test/ui/impl-trait/issue-57200.stderr @@ -1,5 +1,5 @@ error: lifetimes in impl Trait types in bindings are not currently supported - --> $DIR/issue-57200.rs:10:12 + --> $DIR/issue-57200.rs:11:12 | LL | let f: impl Fn(&'a T) -> &'b T = |x| x; | ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/impl-trait/issue-57201.rs b/src/test/ui/impl-trait/issue-57201.rs index 79b19b52d2061..c1a98d8897bfb 100644 --- a/src/test/ui/impl-trait/issue-57201.rs +++ b/src/test/ui/impl-trait/issue-57201.rs @@ -1,4 +1,5 @@ // Regression test for #57201 +// FIXME: The error is temporary hack, we'll revisit here at some point. #![feature(impl_trait_in_bindings)] #![allow(incomplete_features)] diff --git a/src/test/ui/impl-trait/issue-57201.stderr b/src/test/ui/impl-trait/issue-57201.stderr index 5defd15b6b545..462b17bf45e2f 100644 --- a/src/test/ui/impl-trait/issue-57201.stderr +++ b/src/test/ui/impl-trait/issue-57201.stderr @@ -1,5 +1,5 @@ error: lifetimes in impl Trait types in bindings are not currently supported - --> $DIR/issue-57201.rs:10:13 + --> $DIR/issue-57201.rs:11:13 | LL | let f: &impl Fn(&'a T) -> &'b T = &|x| x; | ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/impl-trait/issue-60473.rs b/src/test/ui/impl-trait/issue-60473.rs index 596d8a2dd741a..50cf0c8c6d641 100644 --- a/src/test/ui/impl-trait/issue-60473.rs +++ b/src/test/ui/impl-trait/issue-60473.rs @@ -12,5 +12,6 @@ impl Trait for () { } fn main() { - let x: impl Trait = (); //~ ERROR: opaque type expands to a recursive type + let x: impl Trait = (); // FIXME: The error doesn't seem correct. + //~^ ERROR: opaque type expands to a recursive type } diff --git a/src/test/ui/impl-trait/issue-60473.stderr b/src/test/ui/impl-trait/issue-60473.stderr index 6a07f29727c1d..2d95be4e52c61 100644 --- a/src/test/ui/impl-trait/issue-60473.stderr +++ b/src/test/ui/impl-trait/issue-60473.stderr @@ -1,7 +1,7 @@ error[E0720]: opaque type expands to a recursive type --> $DIR/issue-60473.rs:15:12 | -LL | let x: impl Trait = (); +LL | let x: impl Trait = (); // FIXME: The error doesn't seem correct. | ^^^^^^^^^^^^^ expands to a recursive type | = note: type resolves to itself diff --git a/src/test/ui/impl-trait/issue-67166.rs b/src/test/ui/impl-trait/issue-67166.rs index a877d4cfe3bd7..de7433a9bfc4c 100644 --- a/src/test/ui/impl-trait/issue-67166.rs +++ b/src/test/ui/impl-trait/issue-67166.rs @@ -4,7 +4,7 @@ #![allow(incomplete_features)] pub fn run() { - let _foo: Box = Box::new(()); + let _foo: Box = Box::new(()); // FIXME: The error doesn't much make sense. //~^ ERROR: opaque type expands to a recursive type } diff --git a/src/test/ui/impl-trait/issue-67166.stderr b/src/test/ui/impl-trait/issue-67166.stderr index abf30f67d5f89..56cba3cff0b55 100644 --- a/src/test/ui/impl-trait/issue-67166.stderr +++ b/src/test/ui/impl-trait/issue-67166.stderr @@ -1,7 +1,7 @@ error[E0720]: opaque type expands to a recursive type --> $DIR/issue-67166.rs:7:19 | -LL | let _foo: Box = Box::new(()); +LL | let _foo: Box = Box::new(()); // FIXME: The error doesn't much make sense. | ^^^^^^^^^^^^^^ expands to a recursive type | = note: type resolves to itself