Skip to content

Commit bf20777

Browse files
committed
Add a test for -Zhir-stats output.
This will be very useful in subsequent commits where I will improve the output.
1 parent f03ce30 commit bf20777

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed

src/test/ui/stats/hir-stats.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// check-pass
2+
// compile-flags: -Zhir-stats
3+
// only-x86_64
4+
5+
// The aim here is to include at least one of every different type of AST/HIR
6+
// node reported by `-Zhir-stats`.
7+
8+
#![allow(dead_code)]
9+
10+
use std::arch::asm;
11+
use std::fmt::Debug;
12+
use std::ffi::c_void;
13+
14+
extern "C" { fn f(p: *mut c_void); }
15+
16+
/// An enum.
17+
enum E<'a, T: Copy> { A { t: T }, B(&'a u32) }
18+
19+
trait Go {
20+
type G: Debug;
21+
fn go(self) -> u32;
22+
}
23+
24+
impl<'a, T: Copy> Go for E<'a, T> {
25+
type G = bool;
26+
fn go(self) -> u32 {
27+
99
28+
}
29+
}
30+
31+
fn f2<T>(t: T) where T: Debug {}
32+
33+
fn main() {
34+
let x = E::A { t: 3 };
35+
match x {
36+
E::A { .. } => {}
37+
_ => {}
38+
}
39+
40+
unsafe { asm!("mov rdi, 1"); }
41+
}

src/test/ui/stats/hir-stats.stderr

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
2+
PRE EXPANSION AST STATS
3+
4+
Name Accumulated Size Count Item Size
5+
----------------------------------------------------------------
6+
Lifetime 32 2 16
7+
MacCall 64 1 64
8+
Local 72 1 72
9+
Arm 96 2 48
10+
FieldDef 160 2 80
11+
ForeignItem 160 1 160
12+
Stmt 160 5 32
13+
FnDecl 200 5 40
14+
Variant 240 2 120
15+
Block 288 6 48
16+
Attribute 304 2 152
17+
ImplItem 320 2 160
18+
TraitItem 320 2 160
19+
GenericBound 352 4 88
20+
PathSegment 720 30 24
21+
Expr 832 8 104
22+
Pat 840 7 120
23+
Ty 1_344 14 96
24+
Item 1_800 9 200
25+
----------------------------------------------------------------
26+
Total 8_304
27+
28+
29+
POST EXPANSION AST STATS
30+
31+
Name Accumulated Size Count Item Size
32+
----------------------------------------------------------------
33+
Lifetime 32 2 16
34+
Local 72 1 72
35+
Arm 96 2 48
36+
FieldDef 160 2 80
37+
ForeignItem 160 1 160
38+
Stmt 160 5 32
39+
FnDecl 200 5 40
40+
Variant 240 2 120
41+
Block 288 6 48
42+
ImplItem 320 2 160
43+
TraitItem 320 2 160
44+
GenericBound 352 4 88
45+
Attribute 608 4 152
46+
PathSegment 792 33 24
47+
Pat 840 7 120
48+
Expr 936 9 104
49+
Ty 1_344 14 96
50+
Item 2_200 11 200
51+
----------------------------------------------------------------
52+
Total 9_120
53+
54+
55+
HIR STATS
56+
57+
Name Accumulated Size Count Item Size
58+
----------------------------------------------------------------
59+
Param 64 2 32
60+
Local 64 1 64
61+
ForeignItem 72 1 72
62+
FieldDef 96 2 48
63+
Arm 96 2 48
64+
Stmt 96 3 32
65+
FnDecl 120 3 40
66+
Lifetime 128 4 32
67+
Variant 160 2 80
68+
ImplItem 176 2 88
69+
GenericBound 192 4 48
70+
TraitItem 192 2 96
71+
WherePredicate 216 3 72
72+
Block 288 6 48
73+
QPath 408 17 24
74+
Pat 440 5 88
75+
Attribute 608 4 152
76+
Expr 672 12 56
77+
Item 960 12 80
78+
Ty 1_152 16 72
79+
Path 1_296 27 48
80+
PathSegment 2_240 40 56
81+
----------------------------------------------------------------
82+
Total 9_736
83+

0 commit comments

Comments
 (0)