about summary refs log tree commit diff
path: root/tests/ui/modules/module-use-nested-groups.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/modules/module-use-nested-groups.rs')
-rw-r--r--tests/ui/modules/module-use-nested-groups.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/ui/modules/module-use-nested-groups.rs b/tests/ui/modules/module-use-nested-groups.rs
new file mode 100644
index 00000000000..84d1f9141a8
--- /dev/null
+++ b/tests/ui/modules/module-use-nested-groups.rs
@@ -0,0 +1,34 @@
+//! Checks complex `use` syntax and availability of types across nested modules.
+
+//@ run-pass
+
+mod a {
+    pub enum B {}
+
+    pub mod d {
+        pub enum E {}
+        pub enum F {}
+
+        pub mod g {
+            pub enum H {}
+            pub enum I {}
+        }
+    }
+}
+
+// Test every possible part of the syntax
+use a::{B, d::{self, *, g::H}};
+
+// Test a more common use case
+use std::sync::{Arc, atomic::{AtomicBool, Ordering}};
+
+fn main() {
+    let _: B;
+    let _: E;
+    let _: F;
+    let _: H;
+    let _: d::g::I;
+
+    let _: Arc<AtomicBool>;
+    let _: Ordering;
+}