summaryrefslogtreecommitdiffstats
path: root/src/test/ui/stats/hir-stats.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/stats/hir-stats.rs')
-rw-r--r--src/test/ui/stats/hir-stats.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/ui/stats/hir-stats.rs b/src/test/ui/stats/hir-stats.rs
new file mode 100644
index 000000000..5102574d4
--- /dev/null
+++ b/src/test/ui/stats/hir-stats.rs
@@ -0,0 +1,42 @@
+// check-pass
+// compile-flags: -Zhir-stats
+// only-x86_64
+// ignore-stage1
+
+// The aim here is to include at least one of every different type of top-level
+// AST/HIR node reported by `-Zhir-stats`.
+
+#![allow(dead_code)]
+
+use std::arch::asm;
+use std::fmt::Debug;
+use std::ffi::c_void;
+
+extern "C" { fn f(p: *mut c_void); }
+
+/// An enum.
+enum E<'a, T: Copy> { A { t: T }, B(&'a u32) }
+
+trait Go {
+ type G: Debug;
+ fn go(self) -> u32;
+}
+
+impl<'a, T: Copy> Go for E<'a, T> {
+ type G = bool;
+ fn go(self) -> u32 {
+ 99
+ }
+}
+
+fn f2<T>(t: T) where T: Debug {}
+
+fn main() {
+ let x = E::A { t: 3 };
+ match x {
+ E::A { .. } => {}
+ _ => {}
+ }
+
+ unsafe { asm!("mov rdi, 1"); }
+}