Skip to content

Commit a048002

Browse files
committed
check redundant prelude imports
detects unnecessary imports in std::prelude that can be eliminated. For example import: ```rust use std::{option::{Iter, IterMut, IntoIter, Option::{self, Some}}, convert::{TryFrom, TryInto}, mem::drop}; ``` delete : `Option::{self, Some}` and `mem::drop`
1 parent f440b5f commit a048002

File tree

204 files changed

+314
-414
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+314
-414
lines changed

compiler/rustc_ast/src/mut_visit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
//! a `MutVisitor` renaming item names in a module will miss all of those
88
//! that are created by the expansion of a macro.
99
10+
use crate::ast::*;
1011
use crate::ptr::P;
1112
use crate::token::{self, Token};
1213
use crate::tokenstream::*;
13-
use crate::{ast::*, StaticItem};
1414

1515
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
1616
use rustc_data_structures::stack::ensure_sufficient_stack;

compiler/rustc_ast/src/token.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rustc_macros::HashStable_Generic;
1313
use rustc_span::symbol::{kw, sym};
1414
#[allow(hidden_glob_reexports)]
1515
use rustc_span::symbol::{Ident, Symbol};
16-
use rustc_span::{self, edition::Edition, Span, DUMMY_SP};
16+
use rustc_span::{edition::Edition, Span, DUMMY_SP};
1717
use std::borrow::Cow;
1818
use std::fmt;
1919

compiler/rustc_ast/src/visit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
//! instance, a walker looking for item names in a module will miss all of
1414
//! those that are created by the expansion of a macro.
1515
16-
use crate::{ast::*, StaticItem};
16+
use crate::ast::*;
1717

1818
use rustc_span::symbol::Ident;
1919
use rustc_span::Span;

compiler/rustc_ast_lowering/src/expr.rs

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use super::errors::{
77
use super::ResolverAstLoweringExt;
88
use super::{ImplTraitContext, LoweringContext, ParamMode, ParenthesizedGenericArgs};
99
use crate::{FnDeclKind, ImplTraitPosition};
10-
use rustc_ast::attr;
1110
use rustc_ast::ptr::P as AstP;
1211
use rustc_ast::*;
1312
use rustc_data_structures::stack::ensure_sufficient_stack;

compiler/rustc_ast_lowering/src/format.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::LoweringContext;
22
use rustc_ast as ast;
3-
use rustc_ast::visit::{self, Visitor};
3+
use rustc_ast::visit::Visitor;
44
use rustc_ast::*;
55
use rustc_data_structures::fx::FxIndexMap;
66
use rustc_hir as hir;

compiler/rustc_ast_lowering/src/index.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use rustc_data_structures::fx::FxHashMap;
22
use rustc_data_structures::sorted_map::SortedMap;
33
use rustc_hir as hir;
44
use rustc_hir::def_id::LocalDefId;
5-
use rustc_hir::intravisit::{self, Visitor};
5+
use rustc_hir::intravisit::Visitor;
66
use rustc_hir::*;
77
use rustc_index::{Idx, IndexVec};
88
use rustc_middle::span_bug;

compiler/rustc_ast_lowering/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ extern crate tracing;
4646
use crate::errors::{AssocTyParentheses, AssocTyParenthesesSub, MisplacedImplTrait};
4747

4848
use rustc_ast::ptr::P;
49-
use rustc_ast::visit;
5049
use rustc_ast::{self as ast, *};
5150
use rustc_ast_pretty::pprust;
5251
use rustc_data_structures::captures::Captures;

compiler/rustc_ast_passes/src/ast_validation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
use itertools::{Either, Itertools};
1010
use rustc_ast::ptr::P;
11-
use rustc_ast::visit::{self, AssocCtxt, BoundKind, FnCtxt, FnKind, Visitor};
11+
use rustc_ast::visit::{AssocCtxt, BoundKind, FnCtxt, FnKind, Visitor};
12+
use rustc_ast::walk_list;
1213
use rustc_ast::*;
13-
use rustc_ast::{walk_list, StaticItem};
1414
use rustc_ast_pretty::pprust::{self, State};
1515
use rustc_data_structures::fx::FxIndexMap;
1616
use rustc_feature::Features;

compiler/rustc_borrowck/src/dataflow.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use rustc_middle::ty::RegionVid;
1010
use rustc_middle::ty::TyCtxt;
1111
use rustc_mir_dataflow::impls::{EverInitializedPlaces, MaybeUninitializedPlaces};
1212
use rustc_mir_dataflow::ResultsVisitable;
13-
use rustc_mir_dataflow::{self, fmt::DebugWithContext, GenKill};
13+
use rustc_mir_dataflow::{fmt::DebugWithContext, GenKill};
1414
use rustc_mir_dataflow::{Analysis, Direction, Results};
1515
use std::fmt;
1616

compiler/rustc_borrowck/src/region_infer/graphviz.rs

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use std::borrow::Cow;
88
use std::io::{self, Write};
99

1010
use super::*;
11-
use crate::constraints::OutlivesConstraint;
1211
use rustc_graphviz as dot;
1312

1413
impl<'tcx> RegionInferenceContext<'tcx> {

compiler/rustc_borrowck/src/type_check/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ use rustc_infer::infer::{
2525
};
2626
use rustc_middle::mir::tcx::PlaceTy;
2727
use rustc_middle::mir::visit::{NonMutatingUseContext, PlaceContext, Visitor};
28-
use rustc_middle::mir::AssertKind;
2928
use rustc_middle::mir::*;
3029
use rustc_middle::traits::query::NoSolution;
3130
use rustc_middle::traits::ObligationCause;

compiler/rustc_builtin_macros/src/source_util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ use rustc_ast::tokenstream::TokenStream;
55
use rustc_ast_pretty::pprust;
66
use rustc_expand::base::{self, *};
77
use rustc_expand::module::DirOwnership;
8+
use rustc_parse::new_parser_from_file;
89
use rustc_parse::parser::{ForceCollect, Parser};
9-
use rustc_parse::{self, new_parser_from_file};
1010
use rustc_session::lint::builtin::INCOMPLETE_INCLUDE;
1111
use rustc_span::symbol::Symbol;
12-
use rustc_span::{self, Pos, Span};
12+
use rustc_span::{Pos, Span};
1313

1414
use smallvec::SmallVec;
1515
use std::rc::Rc;

compiler/rustc_builtin_macros/src/test_harness.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
use rustc_ast as ast;
44
use rustc_ast::entry::EntryPointType;
5-
use rustc_ast::mut_visit::{ExpectOne, *};
5+
use rustc_ast::mut_visit::*;
66
use rustc_ast::ptr::P;
77
use rustc_ast::visit::{walk_item, Visitor};
88
use rustc_ast::{attr, ModKind};

compiler/rustc_codegen_llvm/src/abi.rs

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use rustc_middle::ty::layout::LayoutOf;
1515
pub use rustc_middle::ty::layout::{FAT_PTR_ADDR, FAT_PTR_EXTRA};
1616
use rustc_middle::ty::Ty;
1717
use rustc_session::config;
18-
use rustc_target::abi::call::ArgAbi;
1918
pub use rustc_target::abi::call::*;
2019
use rustc_target::abi::{self, HasDataLayout, Int};
2120
pub use rustc_target::spec::abi::Abi;

compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use rustc_middle::ty::{
3535
use rustc_session::config::{self, DebugInfo, Lto};
3636
use rustc_span::symbol::Symbol;
3737
use rustc_span::FileName;
38-
use rustc_span::{self, FileNameDisplayPreference, SourceFile};
38+
use rustc_span::{FileNameDisplayPreference, SourceFile};
3939
use rustc_symbol_mangling::typeid_for_trait_ref;
4040
use rustc_target::abi::{Align, Size};
4141
use smallvec::smallvec;

compiler/rustc_codegen_llvm/src/debuginfo/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use rustc_middle::ty::{self, Instance, ParamEnv, Ty, TypeVisitableExt};
3232
use rustc_session::config::{self, DebugInfo};
3333
use rustc_session::Session;
3434
use rustc_span::symbol::Symbol;
35-
use rustc_span::{self, BytePos, Pos, SourceFile, SourceFileAndLine, SourceFileHash, Span};
35+
use rustc_span::{BytePos, Pos, SourceFile, SourceFileAndLine, SourceFileHash, Span};
3636
use rustc_target::abi::Size;
3737

3838
use libc::c_uint;

compiler/rustc_codegen_ssa/src/mir/statement.rs

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use rustc_middle::mir::NonDivergingIntrinsic;
33

44
use super::FunctionCx;
55
use super::LocalRef;
6-
use crate::traits::BuilderMethods;
76
use crate::traits::*;
87

98
impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {

compiler/rustc_const_eval/src/transform/check_consts/check.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rustc_middle::traits::BuiltinImplSource;
1212
use rustc_middle::ty::GenericArgs;
1313
use rustc_middle::ty::{self, adjustment::PointerCoercion, Instance, InstanceDef, Ty, TyCtxt};
1414
use rustc_middle::ty::{TraitRef, TypeVisitableExt};
15-
use rustc_mir_dataflow::{self, Analysis};
15+
use rustc_mir_dataflow::Analysis;
1616
use rustc_span::{sym, Span, Symbol};
1717
use rustc_trait_selection::traits::error_reporting::TypeErrCtxtExt as _;
1818
use rustc_trait_selection::traits::{self, ObligationCauseCode, ObligationCtxt, SelectionContext};

compiler/rustc_data_structures/src/owned_slice.rs

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use crate::sync::Lrc;
44
// Use our fake Send/Sync traits when on not parallel compiler,
55
// so that `OwnedSlice` only implements/requires Send/Sync
66
// for parallel compiler builds.
7+
#[allow(unused_imports)]
78
use crate::sync::{Send, Sync};
89

910
/// An owned slice.

compiler/rustc_expand/src/base.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use rustc_errors::{
2121
use rustc_feature::Features;
2222
use rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT;
2323
use rustc_lint_defs::{BufferedEarlyLint, BuiltinLintDiagnostics, RegisteredTools};
24-
use rustc_parse::{self, parser, MACRO_ARGUMENTS};
24+
use rustc_parse::{parser, MACRO_ARGUMENTS};
2525
use rustc_session::errors::report_lit_error;
2626
use rustc_session::{parse::ParseSess, Limit, Session};
2727
use rustc_span::def_id::{CrateNum, DefId, LocalDefId};

compiler/rustc_hir_analysis/src/check/check.rs

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::check::intrinsicck::InlineAsmCtxt;
2-
use crate::errors::{self, LinkageType};
2+
use crate::errors::LinkageType;
33

44
use super::compare_impl_item::check_type_bounds;
55
use super::compare_impl_item::{compare_impl_method, compare_impl_ty};
@@ -8,9 +8,8 @@ use rustc_attr as attr;
88
use rustc_errors::{ErrorGuaranteed, MultiSpan};
99
use rustc_hir as hir;
1010
use rustc_hir::def::{CtorKind, DefKind};
11-
use rustc_hir::def_id::{DefId, LocalDefId, LocalModDefId};
11+
use rustc_hir::def_id::LocalModDefId;
1212
use rustc_hir::Node;
13-
use rustc_infer::infer::outlives::env::OutlivesEnvironment;
1413
use rustc_infer::infer::{RegionVariableOrigin, TyCtxtInferExt};
1514
use rustc_infer::traits::{Obligation, TraitEngineExt as _};
1615
use rustc_lint_defs::builtin::REPR_TRANSPARENT_EXTERNAL_PRIVATE_FIELDS;
@@ -21,18 +20,15 @@ use rustc_middle::ty::layout::{LayoutError, MAX_SIMD_LANES};
2120
use rustc_middle::ty::util::{Discr, IntTypeExt};
2221
use rustc_middle::ty::GenericArgKind;
2322
use rustc_middle::ty::{
24-
self, AdtDef, ParamEnv, RegionKind, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable,
25-
TypeVisitableExt,
23+
AdtDef, ParamEnv, RegionKind, TypeSuperVisitable, TypeVisitable, TypeVisitableExt,
2624
};
2725
use rustc_session::lint::builtin::{UNINHABITED_STATIC, UNSUPPORTED_CALLING_CONVENTIONS};
2826
use rustc_span::symbol::sym;
29-
use rustc_span::{self, Span};
3027
use rustc_target::abi::FieldIdx;
31-
use rustc_target::spec::abi::Abi;
3228
use rustc_trait_selection::traits::error_reporting::on_unimplemented::OnUnimplementedDirective;
3329
use rustc_trait_selection::traits::error_reporting::TypeErrCtxtExt as _;
3430
use rustc_trait_selection::traits::outlives_bounds::InferCtxtExt as _;
35-
use rustc_trait_selection::traits::{self, ObligationCtxt, TraitEngine, TraitEngineExt as _};
31+
use rustc_trait_selection::traits::{self, TraitEngine, TraitEngineExt as _};
3632
use rustc_type_ir::fold::TypeFoldable;
3733

3834
use std::ops::ControlFlow;

compiler/rustc_hir_pretty/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use rustc_hir::{BindingAnnotation, ByRef, GenericArg, GenericParam, GenericParam
1616
use rustc_hir::{GenericBound, PatKind, RangeEnd, TraitBoundModifier};
1717
use rustc_span::source_map::SourceMap;
1818
use rustc_span::symbol::{kw, Ident, Symbol};
19-
use rustc_span::{self, FileName};
19+
use rustc_span::FileName;
2020
use rustc_target::spec::abi::Abi;
2121

2222
use std::cell::Cell;

compiler/rustc_hir_typeck/src/coercion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ use rustc_middle::ty::GenericArgsRef;
5757
use rustc_middle::ty::{self, Ty, TypeAndMut};
5858
use rustc_session::parse::feature_err;
5959
use rustc_span::symbol::sym;
60-
use rustc_span::{self, DesugaringKind};
60+
use rustc_span::DesugaringKind;
6161
use rustc_target::spec::abi::Abi;
6262
use rustc_trait_selection::infer::InferCtxtExt as _;
6363
use rustc_trait_selection::traits::error_reporting::TypeErrCtxtExt as _;

compiler/rustc_hir_typeck/src/diverges.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_span::{self, Span, DUMMY_SP};
1+
use rustc_span::{Span, DUMMY_SP};
22
use std::{cmp, ops};
33

44
/// Tracks whether executing a node may exit normally (versus

compiler/rustc_hir_typeck/src/expectation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
22
use rustc_middle::ty::{self, Ty};
3-
use rustc_span::{self, Span};
3+
use rustc_span::Span;
44

55
use super::Expectation::*;
66
use super::FnCtxt;

compiler/rustc_hir_typeck/src/fn_ctxt/adjust_fulfillment_errors.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use rustc_hir::def::{DefKind, Res};
44
use rustc_hir::def_id::DefId;
55
use rustc_infer::{infer::type_variable::TypeVariableOriginKind, traits::ObligationCauseCode};
66
use rustc_middle::ty::{self, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitor};
7-
use rustc_span::{self, symbol::kw, Span};
7+
use rustc_span::{symbol::kw, Span};
88
use rustc_trait_selection::traits;
99

1010
use std::ops::ControlFlow;

compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use rustc_middle::ty::visit::TypeVisitableExt;
3333
use rustc_middle::ty::{self, IsSuggestable, Ty, TyCtxt};
3434
use rustc_session::Session;
3535
use rustc_span::symbol::{kw, Ident};
36-
use rustc_span::{self, sym, BytePos, Span};
36+
use rustc_span::{sym, BytePos, Span};
3737
use rustc_trait_selection::traits::{self, ObligationCauseCode, SelectionContext};
3838

3939
use std::iter;

compiler/rustc_hir_typeck/src/inherited.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use rustc_middle::traits::DefiningAnchor;
99
use rustc_middle::ty::visit::TypeVisitableExt;
1010
use rustc_middle::ty::{self, Ty, TyCtxt};
1111
use rustc_span::def_id::LocalDefIdMap;
12-
use rustc_span::{self, Span};
12+
use rustc_span::Span;
1313
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt;
1414
use rustc_trait_selection::traits::{self, PredicateObligation, TraitEngine, TraitEngineExt as _};
1515

compiler/rustc_hir_typeck/src/op.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::method::MethodCallee;
44
use super::{has_expected_num_generic_args, FnCtxt};
55
use crate::Expectation;
66
use rustc_ast as ast;
7-
use rustc_errors::{self, struct_span_err, Applicability, Diagnostic, DiagnosticBuilder};
7+
use rustc_errors::{struct_span_err, Applicability, Diagnostic, DiagnosticBuilder};
88
use rustc_hir as hir;
99
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
1010
use rustc_infer::traits::ObligationCauseCode;

compiler/rustc_incremental/src/persist/dirty_clean.rs

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ use rustc_middle::hir::nested_filter;
3232
use rustc_middle::ty::TyCtxt;
3333
use rustc_span::symbol::{sym, Symbol};
3434
use rustc_span::Span;
35-
use std::iter::FromIterator;
3635
use thin_vec::ThinVec;
3736

3837
const LOADED_FROM_DISK: Symbol = sym::loaded_from_disk;

compiler/rustc_infer/src/errors/note_and_explain.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::fluent_generated as fluent;
22
use crate::infer::error_reporting::nice_region_error::find_anon_type;
3-
use rustc_errors::{self, AddToDiagnostic, Diagnostic, IntoDiagnosticArg, SubdiagnosticMessage};
3+
use rustc_errors::{AddToDiagnostic, Diagnostic, IntoDiagnosticArg, SubdiagnosticMessage};
44
use rustc_middle::ty::{self, TyCtxt};
55
use rustc_span::{symbol::kw, Span};
66

compiler/rustc_interface/src/passes.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, TyCtxt};
2222
use rustc_middle::util::Providers;
2323
use rustc_mir_build as mir_build;
2424
use rustc_parse::{parse_crate_from_file, parse_crate_from_source_str, validate_attr};
25-
use rustc_passes::{self, abi_test, hir_stats, layout_test};
25+
use rustc_passes::{abi_test, hir_stats, layout_test};
2626
use rustc_resolve::Resolver;
2727
use rustc_session::code_stats::VTableSizeInfo;
2828
use rustc_session::config::{CrateType, Input, OutFileName, OutputFilenames, OutputType};

compiler/rustc_lint/src/builtin.rs

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ use crate::{
4040
},
4141
EarlyContext, EarlyLintPass, LateContext, LateLintPass, Level, LintContext,
4242
};
43-
use rustc_ast::attr;
4443
use rustc_ast::tokenstream::{TokenStream, TokenTree};
4544
use rustc_ast::visit::{FnCtxt, FnKind};
4645
use rustc_ast::{self as ast, *};

compiler/rustc_lint/src/lib.rs

-3
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,6 @@ pub use array_into_iter::ARRAY_INTO_ITER;
9494
use rustc_hir::def_id::LocalModDefId;
9595
use rustc_middle::query::Providers;
9696
use rustc_middle::ty::TyCtxt;
97-
use rustc_session::lint::builtin::{
98-
BARE_TRAIT_OBJECTS, ELIDED_LIFETIMES_IN_PATHS, EXPLICIT_OUTLIVES_REQUIREMENTS,
99-
};
10097

10198
use array_into_iter::ArrayIntoIter;
10299
use async_fn_in_trait::AsyncFnInTrait;

compiler/rustc_macros/src/hash_stable.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use proc_macro2::{self, Ident};
1+
use proc_macro2::Ident;
22
use quote::quote;
3-
use syn::{self, parse_quote};
3+
use syn::parse_quote;
44

55
struct Attributes {
66
ignore: bool,

compiler/rustc_macros/src/lift.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use quote::quote;
2-
use syn::{self, parse_quote};
2+
use syn::parse_quote;
33

44
pub fn lift_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::TokenStream {
55
s.add_bounds(synstructure::AddBounds::Generics);

0 commit comments

Comments
 (0)