diff options
Diffstat (limited to 'tests/ui/modules')
| -rw-r--r-- | tests/ui/modules/module-qualified-paths-basic.rs | 20 | ||||
| -rw-r--r-- | tests/ui/modules/module-use-nested-groups.rs | 34 | ||||
| -rw-r--r-- | tests/ui/modules/primitive-type-module-deprecated-paths.rs | 13 | ||||
| -rw-r--r-- | tests/ui/modules/use-keyword-reexport-type-alias.rs | 25 |
4 files changed, 92 insertions, 0 deletions
diff --git a/tests/ui/modules/module-qualified-paths-basic.rs b/tests/ui/modules/module-qualified-paths-basic.rs new file mode 100644 index 00000000000..c02f6060caa --- /dev/null +++ b/tests/ui/modules/module-qualified-paths-basic.rs @@ -0,0 +1,20 @@ +//! Checks that functions from different modules are accessible via their fully-qualified paths. + +//@ run-pass + +mod foo { + pub fn x() -> isize { + return 1; + } +} + +mod bar { + pub fn y() -> isize { + return 1; + } +} + +pub fn main() { + foo::x(); + bar::y(); +} 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; +} diff --git a/tests/ui/modules/primitive-type-module-deprecated-paths.rs b/tests/ui/modules/primitive-type-module-deprecated-paths.rs new file mode 100644 index 00000000000..5c9d2a616b3 --- /dev/null +++ b/tests/ui/modules/primitive-type-module-deprecated-paths.rs @@ -0,0 +1,13 @@ +//! Make sure the module level constants are still there and accessible even after +//! the corresponding associated constants have been added, and later stabilized. + +//@ run-pass + +#![allow(deprecated, deprecated_in_future)] +use std::{f32, u16}; + +fn main() { + let _ = u16::MAX; + let _ = f32::EPSILON; + let _ = std::f64::MANTISSA_DIGITS; +} diff --git a/tests/ui/modules/use-keyword-reexport-type-alias.rs b/tests/ui/modules/use-keyword-reexport-type-alias.rs new file mode 100644 index 00000000000..c62bd9687ae --- /dev/null +++ b/tests/ui/modules/use-keyword-reexport-type-alias.rs @@ -0,0 +1,25 @@ +//! Checks module re-exports, aliasing with `pub use`, +//! and calling private methods via `Self` in an impl block. + +//@ run-pass + +#![allow(unused_variables)] +pub struct A; + +mod test { + pub use self::A as B; + pub use super::A; +} + +impl A { + fn f() {} + fn g() { + Self::f() + } +} + +fn main() { + let a: A = test::A; + let b: A = test::B; + let c: () = A::g(); +} |
