Skip to content

Commit

Permalink
Auto merge of rust-lang#74772 - JohnTitor:add-tests, r=lcnr
Browse files Browse the repository at this point in the history
Add some regression tests

cc rust-lang#56445
Fixes rust-lang#72911
  • Loading branch information
bors committed Jul 26, 2020
2 parents 13f9aa1 + 8dcf868 commit 6239296
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/test/ui/const-generics/issues/issue-56445.rs
Original file line number Diff line number Diff line change
@@ -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<'_, ""> {}
20 changes: 20 additions & 0 deletions src/test/ui/const-generics/issues/issue-56445.stderr
Original file line number Diff line number Diff line change
@@ -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`.
22 changes: 22 additions & 0 deletions src/test/ui/impl-trait/issue-72911.rs
Original file line number Diff line number Diff line change
@@ -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() {}
34 changes: 34 additions & 0 deletions src/test/ui/impl-trait/issue-72911.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 6239296

Please sign in to comment.