Description
Internal compiler error on
rustc 1.22.1 (05e2e1c 2017-11-22) running on x86_64-pc-windows-gnu
rustc 1.24.0-nightly (0a2e9ad 2017-11-29) running on x86_64-pc-windows-gnu
also on playground
rustc 1.22.1 (05e2e1c 2017-11-22) running on x86_64-unknown-linux-gnu
rustc 1.23.0-beta.2 (c9107ee 2017-12-08) running on x86_64-unknown-linux-gnu
rustc 1.24.0-nightly (ad3543d 2017-12-08) running on x86_64-unknown-linux-gnu
I tried this code in empty lib crate:
static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];
fn tst() {
unsafe {
write(&buf);
buf[0]=2;
}
}
fn write<T: AsRef<[u8]>/* + Send*/>(buffer: T) { }
I expected see only message "statics require immutable values".
Instead I see
error[E0017]: references in statics may only refer to immutable values
--> lib.rs:1:25
|
1 | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];
| ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
error[E0017]: references in statics may only refer to immutable values
--> lib.rs:1:25
|
1 | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];
| ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
error: internal compiler error: src\librustc_borrowck\borrowck\mod.rs:1050: aliasability violation for static `cannot assign to data`
--> lib.rs:6:9
|
6 | buf[0]=2;
| ^^^^^^^^
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.22.1 (05e2e1c41 2017-11-22) running on x86_64-pc-windows-gnu
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', src\librustc_errors\lib.rs:439:8
stack backtrace:
0: mingw_set_invalid_parameter_handler
1: mingw_set_invalid_parameter_handler
2: mingw_set_invalid_parameter_handler
3: mingw_set_invalid_parameter_handler
4: mingw_set_invalid_parameter_handler
5: mingw_set_invalid_parameter_handler
6: mingw_set_invalid_parameter_handler
7: mingw_set_invalid_parameter_handler
8: mingw_set_invalid_parameter_handler
9: mingw_set_invalid_parameter_handler
10: mingw_set_invalid_parameter_handler
11: mingw_set_invalid_parameter_handler
12: mingw_set_invalid_parameter_handler
13: mingw_set_invalid_parameter_handler
14: mingw_set_invalid_parameter_handler
15: mingw_set_invalid_parameter_handler
16: mingw_set_invalid_parameter_handler
17: mingw_set_invalid_parameter_handler
18: mingw_set_invalid_parameter_handler
19: mingw_set_invalid_parameter_handler
20: mingw_set_invalid_parameter_handler
21: mingw_set_invalid_parameter_handler
22: mingw_set_invalid_parameter_handler
23: mingw_set_invalid_parameter_handler
24: mingw_set_invalid_parameter_handler
25: mingw_set_invalid_parameter_handler
26: mingw_set_invalid_parameter_handler
27: mingw_set_invalid_parameter_handler
28: mingw_set_invalid_parameter_handler
29: mingw_set_invalid_parameter_handler
30: mingw_set_invalid_parameter_handler
31: mingw_set_invalid_parameter_handler
32: mingw_set_invalid_parameter_handler
33: mingw_set_invalid_parameter_handler
34: mingw_set_invalid_parameter_handler
35: mingw_set_invalid_parameter_handler
Full version:
rustc 1.22.1 (05e2e1c 2017-11-22)
binary: rustc
commit-hash: 05e2e1c
commit-date: 2017-11-22
host: x86_64-pc-windows-gnu
release: 1.22.1
LLVM version: 4.0
rustc 1.24.0-nightly (0a2e9ad 2017-11-29)
binary: rustc
commit-hash: 0a2e9ad
commit-date: 2017-11-29
host: x86_64-pc-windows-gnu
release: 1.24.0-nightly
LLVM version: 4.0