also print rustc_layout on impl trait type aliases
This commit is contained in:
parent
7b657d340d
commit
4a75883a78
@ -27,7 +27,8 @@ impl ItemLikeVisitor<'tcx> for LayoutTest<'tcx> {
|
||||
ItemKind::TyAlias(..)
|
||||
| ItemKind::Enum(..)
|
||||
| ItemKind::Struct(..)
|
||||
| ItemKind::Union(..) => {
|
||||
| ItemKind::Union(..)
|
||||
| ItemKind::OpaqueTy(..) => {
|
||||
for attr in self.tcx.get_attrs(item_def_id).iter() {
|
||||
if attr.check_name(sym::rustc_layout) {
|
||||
self.dump_layout_of(item_def_id, item, attr);
|
||||
|
@ -1,5 +1,5 @@
|
||||
// normalize-stderr-test "pref: Align \{\n *pow2: [1-3],\n *\}" -> "pref: $$PREF_ALIGN"
|
||||
#![feature(never_type, rustc_attrs)]
|
||||
#![feature(never_type, rustc_attrs, type_alias_impl_trait)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
#[rustc_layout(debug)]
|
||||
@ -13,3 +13,10 @@ union U { f1: (i32, i32), f3: i32 } //~ ERROR: layout debugging
|
||||
|
||||
#[rustc_layout(debug)]
|
||||
type Test = Result<i32, i32>; //~ ERROR: layout debugging
|
||||
|
||||
#[rustc_layout(debug)]
|
||||
type T = impl std::fmt::Debug; //~ ERROR: layout debugging
|
||||
|
||||
fn f() -> T {
|
||||
0i32
|
||||
}
|
||||
|
@ -315,5 +315,37 @@ error: layout debugging: Layout {
|
||||
LL | type Test = Result<i32, i32>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error: layout debugging: Layout {
|
||||
fields: Union(
|
||||
0,
|
||||
),
|
||||
variants: Single {
|
||||
index: 0,
|
||||
},
|
||||
abi: Scalar(
|
||||
Scalar {
|
||||
value: Int(
|
||||
I32,
|
||||
true,
|
||||
),
|
||||
valid_range: 0..=4294967295,
|
||||
},
|
||||
),
|
||||
largest_niche: None,
|
||||
align: AbiAndPrefAlign {
|
||||
abi: Align {
|
||||
pow2: 2,
|
||||
},
|
||||
pref: $PREF_ALIGN,
|
||||
},
|
||||
size: Size {
|
||||
raw: 4,
|
||||
},
|
||||
}
|
||||
--> $DIR/debug.rs:18:1
|
||||
|
|
||||
LL | type T = impl std::fmt::Debug;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user