Auto merge of #54389 - kennytm:rollup, r=kennytm
Rollup of 15 pull requests Successful merges: - #52813 (Duration div mul extras) - #53470 (Warn about metadata loader errors) - #54233 (Remove LLVM 3.9 workaround.) - #54257 (Switch wasm math symbols to their original names) - #54258 (Enable fatal warnings for the wasm32 linker) - #54266 (Update LLVM to fix "bool" arguments on PPC32) - #54290 (Switch linker for aarch64-pc-windows-msvc from LLD to MSVC) - #54292 (Suggest array indexing when tuple indexing on an array) - #54295 (A few cleanups and minor improvements to rustc/traits) - #54298 (miri: correctly compute expected alignment for field) - #54333 (Update The Book to latest) - #54337 (Remove unneeded clone() from tests in librustdoc) - #54346 (rustc: future-proof error reporting for polymorphic constants in types.) - #54362 (Pass --batch to gdb) - #54367 (Add regression test for thread local static mut borrows)
This commit is contained in:
commit
2fa1390f6c
35 changed files with 632 additions and 521 deletions
9
src/test/ui/issues/issue-53712.rs
Normal file
9
src/test/ui/issues/issue-53712.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// issue #53712: make the error generated by using tuple indexing on an array more specific
|
||||
|
||||
fn main() {
|
||||
let arr = [10, 20, 30, 40, 50];
|
||||
arr.0;
|
||||
//~^ ERROR no field `0` on type `[{integer}; 5]` [E0609]
|
||||
//~| HELP instead of using tuple indexing, use array indexing
|
||||
//~| SUGGESTION arr[0]
|
||||
}
|
||||
11
src/test/ui/issues/issue-53712.stderr
Normal file
11
src/test/ui/issues/issue-53712.stderr
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
error[E0609]: no field `0` on type `[{integer}; 5]`
|
||||
--> $DIR/issue-53712.rs:5:9
|
||||
|
|
||||
LL | arr.0;
|
||||
| ----^
|
||||
| |
|
||||
| help: instead of using tuple indexing, use array indexing: `arr[0]`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0609`.
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
//
|
||||
// run-pass
|
||||
//
|
||||
// FIXME(#54366) - We probably shouldn't allow #[thread_local] static mut to get a 'static lifetime.
|
||||
|
||||
#![feature(nll)]
|
||||
#![feature(thread_local)]
|
||||
|
||||
#[thread_local]
|
||||
static mut X1: u64 = 0;
|
||||
|
||||
struct S1 {
|
||||
a: &'static mut u64,
|
||||
}
|
||||
|
||||
impl S1 {
|
||||
fn new(_x: u64) -> S1 {
|
||||
S1 {
|
||||
a: unsafe { &mut X1 },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
S1::new(0).a;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue