Add test for issue-72911

This commit is contained in:
Yuki Okushi 2020-07-26 18:54:54 +09:00
parent 832d0a7667
commit 8dcf86887c
No known key found for this signature in database
GPG Key ID: B0986C85C0E2DAA1
2 changed files with 56 additions and 0 deletions

View File

@ -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() {}

View File

@ -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`.