rust/tests/ui/layout/debug.rs

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

44 lines
933 B
Rust
Raw Normal View History

// normalize-stderr-test "pref: Align\([1-8] bytes\)" -> "pref: $$PREF_ALIGN"
#![feature(never_type, rustc_attrs, type_alias_impl_trait)]
2020-03-10 16:31:27 -05:00
#![crate_type = "lib"]
#[rustc_layout(debug)]
2020-04-06 02:22:48 -05:00
enum E { Foo, Bar(!, i32, i32) } //~ ERROR: layout_of
#[rustc_layout(debug)]
2020-04-06 02:22:48 -05:00
struct S { f1: i32, f2: (), f3: i32 } //~ ERROR: layout_of
#[rustc_layout(debug)]
2020-04-06 02:22:48 -05:00
union U { f1: (i32, i32), f3: i32 } //~ ERROR: layout_of
2020-03-10 16:31:27 -05:00
#[rustc_layout(debug)]
2020-04-06 02:22:48 -05:00
type Test = Result<i32, i32>; //~ ERROR: layout_of
#[rustc_layout(debug)]
2020-04-06 02:22:48 -05:00
type T = impl std::fmt::Debug; //~ ERROR: layout_of
#[rustc_layout(debug)]
pub union V { //~ ERROR: layout_of
a: [u16; 0],
b: u8,
}
#[rustc_layout(debug)]
pub union W { //~ ERROR: layout_of
b: u8,
a: [u16; 0],
}
#[rustc_layout(debug)]
pub union Y { //~ ERROR: layout_of
b: [u8; 0],
a: [u16; 0],
}
#[rustc_layout(debug)]
type X = std::mem::MaybeUninit<u8>; //~ ERROR: layout_of
fn f() -> T {
0i32
}