Tweak wording of collect()
on bad target type
This commit is contained in:
parent
f453d1127d
commit
3091b823d1
@ -91,9 +91,9 @@
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_on_unimplemented(
|
||||
message="a collection of type `{Self}` cannot be built from an iterator \
|
||||
message="a value of type `{Self}` cannot be built from an iterator \
|
||||
over elements of type `{A}`",
|
||||
label="a collection of type `{Self}` cannot be built from `std::iter::Iterator<Item={A}>`",
|
||||
label="value of type `{Self}` cannot be built from `std::iter::Iterator<Item={A}>`",
|
||||
)]
|
||||
pub trait FromIterator<A>: Sized {
|
||||
/// Creates a value from an iterator.
|
||||
|
@ -4,9 +4,9 @@ use std::ops::Add;
|
||||
|
||||
struct Foo<T, U: FromIterator<T>>(T, U);
|
||||
struct WellFormed<Z = Foo<i32, i32>>(Z);
|
||||
//~^ ERROR a collection of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
//~^ ERROR a value of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
struct WellFormedNoBounds<Z:?Sized = Foo<i32, i32>>(Z);
|
||||
//~^ ERROR a collection of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
//~^ ERROR a value of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
|
||||
struct Bounds<T:Copy=String>(T);
|
||||
//~^ ERROR the trait bound `std::string::String: std::marker::Copy` is not satisfied [E0277]
|
||||
|
@ -1,21 +1,21 @@
|
||||
error[E0277]: a collection of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
error[E0277]: a value of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
--> $DIR/type-check-defaults.rs:6:19
|
||||
|
|
||||
LL | struct Foo<T, U: FromIterator<T>>(T, U);
|
||||
| ---------------------------------------- required by `Foo`
|
||||
LL | struct WellFormed<Z = Foo<i32, i32>>(Z);
|
||||
| ^ a collection of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
|
||||
| ^ value of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
|
||||
|
|
||||
= help: the trait `std::iter::FromIterator<i32>` is not implemented for `i32`
|
||||
|
||||
error[E0277]: a collection of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
error[E0277]: a value of type `i32` cannot be built from an iterator over elements of type `i32`
|
||||
--> $DIR/type-check-defaults.rs:8:27
|
||||
|
|
||||
LL | struct Foo<T, U: FromIterator<T>>(T, U);
|
||||
| ---------------------------------------- required by `Foo`
|
||||
...
|
||||
LL | struct WellFormedNoBounds<Z:?Sized = Foo<i32, i32>>(Z);
|
||||
| ^ a collection of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
|
||||
| ^ value of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
|
||||
|
|
||||
= help: the trait `std::iter::FromIterator<i32>` is not implemented for `i32`
|
||||
|
||||
|
@ -3,5 +3,5 @@ fn main() {
|
||||
const l: usize = v.count(); //~ ERROR attempt to use a non-constant value in a constant
|
||||
let s: [u32; l] = v.into_iter().collect();
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~^^ ERROR a collection of type
|
||||
//~^^ ERROR a value of type
|
||||
}
|
||||
|
@ -10,11 +10,11 @@ error[E0080]: evaluation of constant value failed
|
||||
LL | let s: [u32; l] = v.into_iter().collect();
|
||||
| ^ referenced constant has errors
|
||||
|
||||
error[E0277]: a collection of type `[u32; _]` cannot be built from an iterator over elements of type `{integer}`
|
||||
error[E0277]: a value of type `[u32; _]` cannot be built from an iterator over elements of type `{integer}`
|
||||
--> $DIR/type-dependent-def-issue-49241.rs:4:37
|
||||
|
|
||||
LL | let s: [u32; l] = v.into_iter().collect();
|
||||
| ^^^^^^^ a collection of type `[u32; _]` cannot be built from `std::iter::Iterator<Item={integer}>`
|
||||
| ^^^^^^^ value of type `[u32; _]` cannot be built from `std::iter::Iterator<Item={integer}>`
|
||||
|
|
||||
= help: the trait `std::iter::FromIterator<{integer}>` is not implemented for `[u32; _]`
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user