about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-07-26 14:09:36 +0000
committerbors <bors@rust-lang.org>2020-07-26 14:09:36 +0000
commit62392966a3937362146d7228444c8d843d972857 (patch)
treef62c684f05017230721d6006387189afb1d8707c
parent13f9aa190957b993a268fd4a046fce76ca8814ee (diff)
parent8dcf86887cecd84d0775bdf45580435bc8e8bc2d (diff)
downloadrust-62392966a3937362146d7228444c8d843d972857.tar.gz
rust-62392966a3937362146d7228444c8d843d972857.zip
Auto merge of #74772 - JohnTitor:add-tests, r=lcnr
Add some regression tests

cc #56445
Fixes #72911
-rw-r--r--src/test/ui/const-generics/issues/issue-56445.rs12
-rw-r--r--src/test/ui/const-generics/issues/issue-56445.stderr20
-rw-r--r--src/test/ui/impl-trait/issue-72911.rs22
-rw-r--r--src/test/ui/impl-trait/issue-72911.stderr34
4 files changed, 88 insertions, 0 deletions
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 00000000000..26441512e3f
--- /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 00000000000..fba638b0b2b
--- /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 <https://github.com/rust-lang/rust/issues/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 <https://github.com/rust-lang/rust/issues/74052>
+
+error: aborting due to previous error; 1 warning emitted
+
+For more information about this error, try `rustc --explain E0771`.
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 00000000000..dee5a41f6de
--- /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<Item = Lint> {
+    //~^ ERROR: cannot resolve opaque type
+    lint_files().flat_map(|f| gather_from_file(&f))
+}
+
+fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator<Item = Lint> {
+    //~^ ERROR: failed to resolve
+    unimplemented!()
+}
+
+fn lint_files() -> impl Iterator<Item = foo::MissingItem> {
+    //~^ 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 00000000000..b28142b916c
--- /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<Item = Lint> {
+   |                                 ^^^ 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<Item = foo::MissingItem> {
+   |                                         ^^^ 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<Item = Lint> {
+   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive opaque type
+LL |
+LL |     lint_files().flat_map(|f| gather_from_file(&f))
+   |     -----------------------------------------------
+   |     |
+   |     returning here with type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
+   |     returning here with type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
+...
+LL | fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator<Item = Lint> {
+   |                                                      -------------------------- returning this opaque type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
+...
+LL | fn lint_files() -> impl Iterator<Item = foo::MissingItem> {
+   |                    -------------------------------------- returning this opaque type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0433, E0720.
+For more information about an error, try `rustc --explain E0433`.