Skip to content

Commit

Permalink
Rollup merge of rust-lang#62842 - JohnTitor:test-for-58887, r=alexreg
Browse files Browse the repository at this point in the history
Add tests for issue-58887

Closes rust-lang#58887
  • Loading branch information
Centril authored Jul 22, 2019
2 parents 1d5ea88 + e75ae15 commit f7621c5
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/test/ui/existential-type/issue-58887.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#![feature(existential_type)]

trait UnwrapItemsExt {
type Iter;
fn unwrap_items(self) -> Self::Iter;
}

impl<I, T, E> UnwrapItemsExt for I
where
I: Iterator<Item = Result<T, E>>,
E: std::fmt::Debug,
{
existential type Iter: Iterator<Item = T>;
//~^ ERROR: could not find defining uses

fn unwrap_items(self) -> Self::Iter {
//~^ ERROR: type parameter `T` is part of concrete type
//~| ERROR: type parameter `E` is part of concrete type
self.map(|x| x.unwrap())
}
}

fn main() {}
30 changes: 30 additions & 0 deletions src/test/ui/existential-type/issue-58887.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
error: type parameter `T` is part of concrete type but not used in parameter list for existential type
--> $DIR/issue-58887.rs:16:41
|
LL | fn unwrap_items(self) -> Self::Iter {
| _________________________________________^
LL | |
LL | |
LL | | self.map(|x| x.unwrap())
LL | | }
| |_____^

error: type parameter `E` is part of concrete type but not used in parameter list for existential type
--> $DIR/issue-58887.rs:16:41
|
LL | fn unwrap_items(self) -> Self::Iter {
| _________________________________________^
LL | |
LL | |
LL | | self.map(|x| x.unwrap())
LL | | }
| |_____^

error: could not find defining uses
--> $DIR/issue-58887.rs:13:5
|
LL | existential type Iter: Iterator<Item = T>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors

0 comments on commit f7621c5

Please sign in to comment.