Skip to content

Commit 48e92bd

Browse files
Add E0016 explanation
1 parent 1ef14d9 commit 48e92bd

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/librustc/diagnostics.rs

+15-1
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,21 @@ See [RFC 911] for more details on the design of `const fn`s.
256256
[RFC 911]: https://github.com/rust-lang/rfcs/blob/master/text/0911-const-fn.md
257257
"##,
258258

259+
E0016: r##"
260+
Blocks in constants may only contain items (such as constant, function
261+
definition, etc...) and a tail expression. Example:
262+
263+
```
264+
const FOO: i32 = { let x = 0; x }; // 'x' isn't an item!
265+
```
266+
267+
To avoid it, you have to replace the non-item object:
268+
269+
```
270+
const FOO: i32 = { const X : i32 = 0; X };
271+
```
272+
"##,
273+
259274
E0018: r##"
260275
The value of static and const variables must be known at compile time. You
261276
can't cast a pointer as an integer because we can't know what value the
@@ -950,7 +965,6 @@ static mut BAR: Option<Vec<i32>> = None;
950965

951966

952967
register_diagnostics! {
953-
E0016,
954968
E0017,
955969
E0019,
956970
E0022,

0 commit comments

Comments
 (0)