rust/tests/ui/unsafe-fields/auto-traits.rs

27 lines
571 B
Rust

//@ compile-flags: --crate-type=lib
//@ revisions: current next
//@[next] compile-flags: -Znext-solver
#![feature(auto_traits)]
#![feature(unsafe_fields)]
#![allow(incomplete_features)]
enum UnsafeEnum {
Safe(u8),
Unsafe { unsafe field: u8 },
}
auto trait SafeAuto {}
fn impl_safe_auto(_: impl SafeAuto) {}
unsafe auto trait UnsafeAuto {}
fn impl_unsafe_auto(_: impl UnsafeAuto) {}
fn tests() {
impl_safe_auto(UnsafeEnum::Safe(42));
impl_unsafe_auto(UnsafeEnum::Safe(42));
//~^ ERROR the trait bound `UnsafeEnum: UnsafeAuto` is not satisfied
}