From 832d0a7667504acf2ba4a846b323f3762b40ffea Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 26 Jul 2020 18:54:24 +0900 Subject: [PATCH 1/2] Add test for issue-56445 --- .../ui/const-generics/issues/issue-56445.rs | 12 +++++++++++ .../const-generics/issues/issue-56445.stderr | 20 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/ui/const-generics/issues/issue-56445.rs create mode 100644 src/test/ui/const-generics/issues/issue-56445.stderr diff --git a/src/test/ui/const-generics/issues/issue-56445.rs b/src/test/ui/const-generics/issues/issue-56445.rs new file mode 100644 index 0000000000000..26441512e3fbd --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-56445.rs @@ -0,0 +1,12 @@ +// Regression test for https://github.com/rust-lang/rust/issues/56445#issuecomment-518402995. + +#![feature(const_generics)] +//~^ WARN: the feature `const_generics` is incomplete +#![crate_type = "lib"] + +use std::marker::PhantomData; + +struct Bug<'a, const S: &'a str>(PhantomData<&'a ()>); +//~^ ERROR: use of non-static lifetime `'a` in const generic + +impl Bug<'_, ""> {} diff --git a/src/test/ui/const-generics/issues/issue-56445.stderr b/src/test/ui/const-generics/issues/issue-56445.stderr new file mode 100644 index 0000000000000..fba638b0b2b97 --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-56445.stderr @@ -0,0 +1,20 @@ +warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes + --> $DIR/issue-56445.rs:3:12 + | +LL | #![feature(const_generics)] + | ^^^^^^^^^^^^^^ + | + = note: `#[warn(incomplete_features)]` on by default + = note: see issue #44580 for more information + +error[E0771]: use of non-static lifetime `'a` in const generic + --> $DIR/issue-56445.rs:9:26 + | +LL | struct Bug<'a, const S: &'a str>(PhantomData<&'a ()>); + | ^^ + | + = note: for more information, see issue #74052 + +error: aborting due to previous error; 1 warning emitted + +For more information about this error, try `rustc --explain E0771`. From 8dcf86887cecd84d0775bdf45580435bc8e8bc2d Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 26 Jul 2020 18:54:54 +0900 Subject: [PATCH 2/2] Add test for issue-72911 --- src/test/ui/impl-trait/issue-72911.rs | 22 +++++++++++++++ src/test/ui/impl-trait/issue-72911.stderr | 34 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/test/ui/impl-trait/issue-72911.rs create mode 100644 src/test/ui/impl-trait/issue-72911.stderr diff --git a/src/test/ui/impl-trait/issue-72911.rs b/src/test/ui/impl-trait/issue-72911.rs new file mode 100644 index 0000000000000..dee5a41f6de37 --- /dev/null +++ b/src/test/ui/impl-trait/issue-72911.rs @@ -0,0 +1,22 @@ +// Regression test for #72911. + +pub struct Lint {} + +impl Lint {} + +pub fn gather_all() -> impl Iterator { + //~^ ERROR: cannot resolve opaque type + lint_files().flat_map(|f| gather_from_file(&f)) +} + +fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator { + //~^ ERROR: failed to resolve + unimplemented!() +} + +fn lint_files() -> impl Iterator { + //~^ ERROR: failed to resolve + unimplemented!() +} + +fn main() {} diff --git a/src/test/ui/impl-trait/issue-72911.stderr b/src/test/ui/impl-trait/issue-72911.stderr new file mode 100644 index 0000000000000..b28142b916c77 --- /dev/null +++ b/src/test/ui/impl-trait/issue-72911.stderr @@ -0,0 +1,34 @@ +error[E0433]: failed to resolve: use of undeclared type or module `foo` + --> $DIR/issue-72911.rs:12:33 + | +LL | fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator { + | ^^^ use of undeclared type or module `foo` + +error[E0433]: failed to resolve: use of undeclared type or module `foo` + --> $DIR/issue-72911.rs:17:41 + | +LL | fn lint_files() -> impl Iterator { + | ^^^ use of undeclared type or module `foo` + +error[E0720]: cannot resolve opaque type + --> $DIR/issue-72911.rs:7:24 + | +LL | pub fn gather_all() -> impl Iterator { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive opaque type +LL | +LL | lint_files().flat_map(|f| gather_from_file(&f)) + | ----------------------------------------------- + | | + | returning here with type `std::iter::FlatMap` + | returning here with type `std::iter::FlatMap` +... +LL | fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator { + | -------------------------- returning this opaque type `std::iter::FlatMap` +... +LL | fn lint_files() -> impl Iterator { + | -------------------------------------- returning this opaque type `std::iter::FlatMap` + +error: aborting due to 3 previous errors + +Some errors have detailed explanations: E0433, E0720. +For more information about an error, try `rustc --explain E0433`.