2 // aux-build:wildcard_imports_helper.rs
4 #![warn(clippy::wildcard_imports)]
6 #![warn(unused_imports)]
8 extern crate wildcard_imports_helper;
10 use crate::fn_mod::foo;
11 use crate::mod_mod::inner_mod;
12 use crate::multi_fn_mod::{multi_bar, multi_foo, multi_inner_mod};
14 use crate::struct_mod::{A, inner_struct_mod};
16 #[allow(unused_imports)]
17 use wildcard_imports_helper::inner::inner_for_self_import;
18 use wildcard_imports_helper::inner::inner_for_self_import::inner_extern_bar;
19 use wildcard_imports_helper::{ExternA, extern_foo};
21 use std::io::prelude::*;
25 impl Read for ReadFoo {
26 fn read(&mut self, _buf: &mut [u8]) -> std::io::Result<usize> {
45 pub mod multi_inner_mod {
53 pub mod inner_struct_mod {
58 macro_rules! double_struct_import_test {
69 multi_inner_mod::foo();
75 let _ = inner_struct_mod::C;
78 double_struct_import_test!();
79 double_struct_import_test!();
83 pub use self::inner_exported::*;
84 #[allow(unused_imports)]
85 pub(crate) use self::inner_exported2::*;
88 use crate::fn_mod::foo;
94 use wildcard_imports_helper::inner::inner_for_self_import::{self, inner_extern_foo};
95 use wildcard_imports_helper::{ExternA, extern_foo};
97 inner_for_self_import::inner_extern_foo();
105 fn test_inner_nested() {
106 use self::{inner::inner_foo, inner2::inner_bar};
112 fn test_extern_reexported() {
113 use wildcard_imports_helper::{ExternExportedEnum, ExternExportedStruct, extern_exported};
116 let _ = ExternExportedStruct;
117 let _ = ExternExportedEnum::A;
122 pub struct ExportedStruct;
123 pub enum ExportedEnum {
128 mod inner_exported2 {
129 pub(crate) fn exported2() {}
133 pub fn inner_foo() {}
137 pub fn inner_bar() {}
141 fn test_reexported() {
142 use crate::in_fn_test::{ExportedEnum, ExportedStruct, exported};
145 let _ = ExportedStruct;
146 let _ = ExportedEnum::A;
150 fn test_weird_formatting() {
151 use crate:: in_fn_test::exported;
152 use crate:: fn_mod::foo;