G.MOD.03 导入模块不要随便使用 通配符*

【级别】 建议

【描述】

使用通配符导入会污染命名空间,比如导入相同命名的函数或类型。

【反例】


#![allow(unused)]
#![warn(clippy::wildcard_imports)]
fn main() {
use crate2::*; // Has a function named foo
foo(); // Calls crate1::foo
}

【正例】


#![allow(unused)]
#![warn(clippy::wildcard_imports)]
fn main() {
use crate1::foo; // Imports a function named foo
foo(); // Calls crate1::foo
}

【例外】


#![allow(unused)]
fn main() {
use prelude::*;

#[test]
use super::*
}

【Lint 检测】

lint nameClippy 可检测Rustc 可检测Lint Grouplevel
wildcard_importsyesnopedanticallow

该 lint 可以通过 clippy 配置项 warn-on-all-wildcard-imports = false 来配置,用于是否禁用 prelude/ super (测试模块中) 使用通配符导入, 默认是 false