File tree 3 files changed +67
-0
lines changed
library/core/src/iter/traits
3 files changed +67
-0
lines changed Original file line number Diff line number Diff line change 81
81
/// ```
82
82
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
83
83
#[ rustc_on_unimplemented(
84
+ on(
85
+ _Self = "[{A}]" ,
86
+ message = "a value of type `{Self}` cannot be built since `{Self}` has no definite size" ,
87
+ label = "try explicitly collecting into a `Vec<{A}>`" ,
88
+ ) ,
89
+ on(
90
+ all(
91
+ A = "{integer}" ,
92
+ any(
93
+ _Self = "[i8]" ,
94
+ _Self = "[i16]" ,
95
+ _Self = "[i32]" ,
96
+ _Self = "[i64]" ,
97
+ _Self = "[i128]" ,
98
+ _Self = "[isize]" ,
99
+ _Self = "[u8]" ,
100
+ _Self = "[u16]" ,
101
+ _Self = "[u32]" ,
102
+ _Self = "[u64]" ,
103
+ _Self = "[u128]" ,
104
+ _Self = "[usize]"
105
+ )
106
+ ) ,
107
+ message = "a value of type `{Self}` cannot be built since `{Self}` has no definite size" ,
108
+ label = "try explicitly collecting into a `Vec<{A}>`" ,
109
+ ) ,
84
110
message = "a value of type `{Self}` cannot be built from an iterator \
85
111
over elements of type `{A}`",
86
112
label = "value of type `{Self}` cannot be built from `std::iter::Iterator<Item={A}>`"
Original file line number Diff line number Diff line change
1
+ fn process_slice ( data : & [ i32 ] ) {
2
+ //~^ NOTE required by a bound in this
3
+ todo ! ( )
4
+ }
5
+
6
+ fn main ( ) {
7
+ let some_generated_vec = ( 0 ..10 ) . collect ( ) ;
8
+ //~^ ERROR the size for values of type `[i32]` cannot be known at compilation time
9
+ //~| ERROR a value of type `[i32]` cannot be built since `[i32]` has no definite size
10
+ //~| NOTE try explicitly collecting into a `Vec<{integer}>`
11
+ //~| NOTE required by a bound in `collect`
12
+ //~| NOTE all local variables must have a statically known size
13
+ //~| NOTE doesn't have a size known at compile-time
14
+ process_slice ( & some_generated_vec) ;
15
+ }
Original file line number Diff line number Diff line change
1
+ error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
2
+ --> $DIR/collect-into-slice.rs:7:9
3
+ |
4
+ LL | let some_generated_vec = (0..10).collect();
5
+ | ^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
6
+ |
7
+ = help: the trait `Sized` is not implemented for `[i32]`
8
+ = note: all local variables must have a statically known size
9
+ = help: unsized locals are gated as an unstable feature
10
+
11
+ error[E0277]: a value of type `[i32]` cannot be built since `[i32]` has no definite size
12
+ --> $DIR/collect-into-slice.rs:7:38
13
+ |
14
+ LL | let some_generated_vec = (0..10).collect();
15
+ | ^^^^^^^ try explicitly collecting into a `Vec<{integer}>`
16
+ |
17
+ = help: the trait `FromIterator<{integer}>` is not implemented for `[i32]`
18
+ note: required by a bound in `collect`
19
+ --> $SRC_DIR/core/src/iter/traits/iterator.rs:LL:COL
20
+ |
21
+ LL | fn collect<B: FromIterator<Self::Item>>(self) -> B
22
+ | ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `collect`
23
+
24
+ error: aborting due to 2 previous errors
25
+
26
+ For more information about this error, try `rustc --explain E0277`.
You can’t perform that action at this time.
0 commit comments