Skip to content

Commit f7621c5

Browse files
authored
Rollup merge of rust-lang#62842 - JohnTitor:test-for-58887, r=alexreg
Add tests for issue-58887 Closes rust-lang#58887
2 parents 1d5ea88 + e75ae15 commit f7621c5

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#![feature(existential_type)]
2+
3+
trait UnwrapItemsExt {
4+
type Iter;
5+
fn unwrap_items(self) -> Self::Iter;
6+
}
7+
8+
impl<I, T, E> UnwrapItemsExt for I
9+
where
10+
I: Iterator<Item = Result<T, E>>,
11+
E: std::fmt::Debug,
12+
{
13+
existential type Iter: Iterator<Item = T>;
14+
//~^ ERROR: could not find defining uses
15+
16+
fn unwrap_items(self) -> Self::Iter {
17+
//~^ ERROR: type parameter `T` is part of concrete type
18+
//~| ERROR: type parameter `E` is part of concrete type
19+
self.map(|x| x.unwrap())
20+
}
21+
}
22+
23+
fn main() {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
error: type parameter `T` is part of concrete type but not used in parameter list for existential type
2+
--> $DIR/issue-58887.rs:16:41
3+
|
4+
LL | fn unwrap_items(self) -> Self::Iter {
5+
| _________________________________________^
6+
LL | |
7+
LL | |
8+
LL | | self.map(|x| x.unwrap())
9+
LL | | }
10+
| |_____^
11+
12+
error: type parameter `E` is part of concrete type but not used in parameter list for existential type
13+
--> $DIR/issue-58887.rs:16:41
14+
|
15+
LL | fn unwrap_items(self) -> Self::Iter {
16+
| _________________________________________^
17+
LL | |
18+
LL | |
19+
LL | | self.map(|x| x.unwrap())
20+
LL | | }
21+
| |_____^
22+
23+
error: could not find defining uses
24+
--> $DIR/issue-58887.rs:13:5
25+
|
26+
LL | existential type Iter: Iterator<Item = T>;
27+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28+
29+
error: aborting due to 3 previous errors
30+

0 commit comments

Comments
 (0)