Add a regression test for #92305
This commit is contained in:
parent
a933de8398
commit
18b12fa993
15
src/test/ui/impl-trait/issues/issue-92305.rs
Normal file
15
src/test/ui/impl-trait/issues/issue-92305.rs
Normal file
@ -0,0 +1,15 @@
|
||||
// edition:2021
|
||||
|
||||
use std::iter;
|
||||
|
||||
fn f<T>(data: &[T]) -> impl Iterator<Item = Vec> {
|
||||
//~^ ERROR: missing generics for struct `Vec` [E0107]
|
||||
iter::empty() //~ ERROR: type annotations needed [E0282]
|
||||
}
|
||||
|
||||
fn g<T>(data: &[T], target: T) -> impl Iterator<Item = Vec<T>> {
|
||||
//~^ ERROR: type annotations needed [E0282]
|
||||
f(data).filter(|x| x == target)
|
||||
}
|
||||
|
||||
fn main() {}
|
32
src/test/ui/impl-trait/issues/issue-92305.stderr
Normal file
32
src/test/ui/impl-trait/issues/issue-92305.stderr
Normal file
@ -0,0 +1,32 @@
|
||||
error[E0107]: missing generics for struct `Vec`
|
||||
--> $DIR/issue-92305.rs:5:45
|
||||
|
|
||||
LL | fn f<T>(data: &[T]) -> impl Iterator<Item = Vec> {
|
||||
| ^^^ expected at least 1 generic argument
|
||||
|
|
||||
note: struct defined here, with at least 1 generic parameter: `T`
|
||||
--> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
|
||||
| ^^^ -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | fn f<T>(data: &[T]) -> impl Iterator<Item = Vec<T>> {
|
||||
| ~~~~~~
|
||||
|
||||
error[E0282]: type annotations needed
|
||||
--> $DIR/issue-92305.rs:7:5
|
||||
|
|
||||
LL | iter::empty()
|
||||
| ^^^^^^^^^^^ cannot infer type for type parameter `T` declared on the function `empty`
|
||||
|
||||
error[E0282]: type annotations needed
|
||||
--> $DIR/issue-92305.rs:10:35
|
||||
|
|
||||
LL | fn g<T>(data: &[T], target: T) -> impl Iterator<Item = Vec<T>> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0107, E0282.
|
||||
For more information about an error, try `rustc --explain E0107`.
|
Loading…
x
Reference in New Issue
Block a user