a935064fae
Compiler: Rename "object safe" to "dyn compatible" Completed T-lang FCP: https://github.com/rust-lang/lang-team/issues/286#issuecomment-2338905118. Tracking issue: https://github.com/rust-lang/rust/issues/130852 Excludes `compiler/rustc_codegen_cranelift` (to be filed separately). Includes Stable MIR. Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
20 lines
1.2 KiB
Rust
20 lines
1.2 KiB
Rust
// ICE: ImmTy { imm: Scalar(alloc1), ty: *const dyn Sync } input to a fat-to-thin cast (*const dyn Sync -> *const usize
|
|
// or with -Zextra-const-ub-checks: expected wide pointer extra data (e.g. slice length or trait object vtable)
|
|
// issue: rust-lang/rust#121413
|
|
//@ compile-flags: -Zextra-const-ub-checks
|
|
// ignore-tidy-linelength
|
|
const REF_INTERIOR_MUT: &usize = {
|
|
//~^ HELP consider importing this struct
|
|
static FOO: Sync = AtomicUsize::new(0);
|
|
//~^ ERROR failed to resolve: use of undeclared type `AtomicUsize`
|
|
//~| WARN trait objects without an explicit `dyn` are deprecated
|
|
//~| ERROR the size for values of type `(dyn Sync + 'static)` cannot be known at compilation time
|
|
//~| ERROR the size for values of type `(dyn Sync + 'static)` cannot be known at compilation time
|
|
//~| WARN this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
//~| HELP if this is a dyn-compatible trait, use `dyn`
|
|
//~| HELP the trait `Sized` is not implemented for `(dyn Sync + 'static)`
|
|
//~| HELP the trait `Sized` is not implemented for `(dyn Sync + 'static)`
|
|
unsafe { &*(&FOO as *const _ as *const usize) }
|
|
};
|
|
pub fn main() {}
|