File tree 1 file changed +19
-5
lines changed
src/librustc_error_codes/error_codes
1 file changed +19
-5
lines changed Original file line number Diff line number Diff line change 1
- In order to be consistent with Rust's lack of global type inference,
2
- type and const placeholders are disallowed by design in item signatures.
1
+ The type placeholder ` _ ` was used withing a type on an item's signature.
3
2
4
- Examples of this error include :
3
+ Erroneous code example :
5
4
6
5
``` compile_fail,E0121
7
- fn foo() -> _ { 5 } // error, explicitly write out the return type instead
6
+ fn foo() -> _ { 5 } // error
8
7
9
- static BAR: _ = "test"; // error, explicitly write out the type instead
8
+ static BAR: _ = "test"; // error
9
+ ```
10
+
11
+ In those cases, you need to provide the type explicitly:
12
+
13
+ ```
14
+ fn foo() -> i32 { 5 } // ok!
15
+
16
+ static BAR: &str = "test"; // ok!
17
+ ```
18
+
19
+ The type placeholder ` _ ` can be used outside item's signature as follows:
20
+
21
+ ```
22
+ let x = "a4a".split('4')
23
+ .collect::<Vec<_>>(); // No need to precise the Vec's generic type.
10
24
```
You can’t perform that action at this time.
0 commit comments