rust/tests/ui/consts/const-eval/issue-55541.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

28 lines
583 B
Rust
Raw Normal View History

// check-pass
// Test that we can handle newtypes wrapping extern types
#![feature(extern_types)]
2018-11-04 07:43:05 -06:00
use std::marker::PhantomData;
extern "C" {
pub type ExternType;
}
unsafe impl Sync for ExternType {}
2018-11-04 07:43:05 -06:00
static MAGIC_FFI_STATIC: u8 = 42;
#[repr(transparent)]
pub struct Wrapper(ExternType);
pub static MAGIC_FFI_REF: &'static Wrapper = unsafe {
std::mem::transmute(&MAGIC_FFI_STATIC)
};
2018-11-04 07:43:05 -06:00
#[repr(transparent)]
pub struct Wrapper2(PhantomData<Vec<i32>>, ExternType);
pub static MAGIC_FFI_REF2: &'static Wrapper2 = unsafe {
std::mem::transmute(&MAGIC_FFI_STATIC)
};
fn main() {}