Skip to content

Commit 95cd528

Browse files
committed
Auto merge of rust-lang#108340 - eggyal:remove_traversal_trait_aliases, r=oli-obk
Remove type-traversal trait aliases rust-lang#107924 moved the type traversal (folding and visiting) traits into the type library, but created trait aliases in `rustc_middle` to minimise both the API churn for trait consumers and the arising boilerplate. As mentioned in that PR, an alternative approach of defining subtraits with blanket implementations of the respective supertraits was also considered at that time but was ruled out as not adding much value. Unfortunately, it has since emerged that rust-analyzer has difficulty with these trait aliases at present, resulting in a degraded contributor experience (see the recent [r-a has become useless](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/r-a.20has.20become.20useless) topic on the #t-compiler/help Zulip stream). This PR removes the trait aliases, and accordingly the underlying type library traits are now used directly; they are parameterised by `TyCtxt<'tcx>` rather than just the `'tcx` lifetime, and imports have been updated to reflect the fact that the trait aliases' explicitly named traits are no longer automatically brought into scope. These changes also roll-back the (no-longer required) workarounds to rust-lang#107747 that were made in b409329. Since this PR is just a find+replace together with the changes necessary for compilation & tidy to pass, it's currently just one mega-commit. Let me know if you'd like it broken up. r? `@oli-obk`
2 parents ab69a2a + 430c4ab commit 95cd528

12 files changed

+14
-14
lines changed

clippy_lints/src/dereference.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use rustc_middle::mir::{Rvalue, StatementKind};
2727
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow, AutoBorrowMutability};
2828
use rustc_middle::ty::{
2929
self, Binder, BoundVariableKind, Clause, EarlyBinder, FnSig, GenericArgKind, List, ParamTy, PredicateKind,
30-
ProjectionPredicate, Ty, TyCtxt, TypeVisitable, TypeckResults,
30+
ProjectionPredicate, Ty, TyCtxt, TypeVisitableExt, TypeckResults,
3131
};
3232
use rustc_session::{declare_tool_lint, impl_lint_pass};
3333
use rustc_span::{symbol::sym, Span, Symbol};

clippy_lints/src/eta_reduction.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_hir::{Closure, Expr, ExprKind, Param, PatKind, Unsafety};
1111
use rustc_lint::{LateContext, LateLintPass};
1212
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow};
1313
use rustc_middle::ty::binding::BindingMode;
14-
use rustc_middle::ty::{self, EarlyBinder, SubstsRef, Ty, TypeVisitable};
14+
use rustc_middle::ty::{self, EarlyBinder, SubstsRef, Ty, TypeVisitableExt};
1515
use rustc_session::{declare_lint_pass, declare_tool_lint};
1616
use rustc_span::symbol::sym;
1717

clippy_lints/src/mut_key.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use clippy_utils::{def_path_def_ids, trait_ref_of_method};
33
use rustc_data_structures::fx::FxHashSet;
44
use rustc_hir as hir;
55
use rustc_lint::{LateContext, LateLintPass};
6-
use rustc_middle::ty::TypeVisitable;
6+
use rustc_middle::ty::TypeVisitableExt;
77
use rustc_middle::ty::{Adt, Array, Ref, Slice, Tuple, Ty};
88
use rustc_session::{declare_tool_lint, impl_lint_pass};
99
use rustc_span::def_id::LocalDefId;

clippy_lints/src/needless_pass_by_value.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use rustc_hir_typeck::expr_use_visitor as euv;
1818
use rustc_infer::infer::TyCtxtInferExt;
1919
use rustc_lint::{LateContext, LateLintPass};
2020
use rustc_middle::mir::FakeReadCause;
21-
use rustc_middle::ty::{self, TypeVisitable};
21+
use rustc_middle::ty::{self, TypeVisitableExt};
2222
use rustc_session::{declare_lint_pass, declare_tool_lint};
2323
use rustc_span::def_id::LocalDefId;
2424
use rustc_span::symbol::kw;

clippy_lints/src/transmute/transmute_ptr_to_ref.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use clippy_utils::sugg;
66
use rustc_errors::Applicability;
77
use rustc_hir::{self as hir, Expr, GenericArg, Mutability, Path, TyKind};
88
use rustc_lint::LateContext;
9-
use rustc_middle::ty::{self, Ty, TypeVisitable};
9+
use rustc_middle::ty::{self, Ty, TypeVisitableExt};
1010

1111
/// Checks for `transmute_ptr_to_ref` lint.
1212
/// Returns `true` if it's triggered, otherwise returns `false`.

clippy_lints/src/transmute/useless_transmute.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use clippy_utils::sugg;
44
use rustc_errors::Applicability;
55
use rustc_hir::Expr;
66
use rustc_lint::LateContext;
7-
use rustc_middle::ty::{self, Ty, TypeVisitable};
7+
use rustc_middle::ty::{self, Ty, TypeVisitableExt};
88

99
/// Checks for `useless_transmute` lint.
1010
/// Returns `true` if it's triggered, otherwise returns `false`.

clippy_lints/src/types/redundant_allocation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc_errors::Applicability;
55
use rustc_hir::{self as hir, def_id::DefId, QPath, TyKind};
66
use rustc_hir_analysis::hir_ty_to_ty;
77
use rustc_lint::LateContext;
8-
use rustc_middle::ty::TypeVisitable;
8+
use rustc_middle::ty::TypeVisitableExt;
99
use rustc_span::symbol::sym;
1010

1111
use super::{utils, REDUNDANT_ALLOCATION};

clippy_lints/src/types/vec_box.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use rustc_hir::{self as hir, def_id::DefId, GenericArg, QPath, TyKind};
77
use rustc_hir_analysis::hir_ty_to_ty;
88
use rustc_lint::LateContext;
99
use rustc_middle::ty::layout::LayoutOf;
10-
use rustc_middle::ty::TypeVisitable;
10+
use rustc_middle::ty::TypeVisitableExt;
1111
use rustc_span::symbol::sym;
1212

1313
use super::VEC_BOX;

clippy_lints/src/zero_sized_map_values.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc_hir::{self as hir, HirId, ItemKind, Node};
55
use rustc_hir_analysis::hir_ty_to_ty;
66
use rustc_lint::{LateContext, LateLintPass};
77
use rustc_middle::ty::layout::LayoutOf as _;
8-
use rustc_middle::ty::{Adt, Ty, TypeVisitable};
8+
use rustc_middle::ty::{Adt, Ty, TypeVisitableExt};
99
use rustc_session::{declare_lint_pass, declare_tool_lint};
1010
use rustc_span::sym;
1111

clippy_utils/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ use rustc_middle::ty::fast_reject::SimplifiedType::{
104104
PtrSimplifiedType, SliceSimplifiedType, StrSimplifiedType, UintSimplifiedType,
105105
};
106106
use rustc_middle::ty::{
107-
layout::IntegerExt, BorrowKind, ClosureKind, DefIdTree, Ty, TyCtxt, TypeAndMut, TypeVisitable, UpvarCapture,
107+
layout::IntegerExt, BorrowKind, ClosureKind, DefIdTree, Ty, TyCtxt, TypeAndMut, TypeVisitableExt, UpvarCapture,
108108
};
109109
use rustc_middle::ty::{FloatTy, IntTy, UintTy};
110110
use rustc_span::hygiene::{ExpnKind, MacroKind};

clippy_utils/src/mir/possible_borrower.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use rustc_data_structures::fx::FxHashMap;
44
use rustc_index::bit_set::{BitSet, HybridBitSet};
55
use rustc_lint::LateContext;
66
use rustc_middle::mir::{self, visit::Visitor as _, Mutability};
7-
use rustc_middle::ty::{self, visit::ir::TypeVisitor, TyCtxt};
7+
use rustc_middle::ty::{self, visit::TypeVisitor, TyCtxt};
88
use rustc_mir_dataflow::{impls::MaybeStorageLive, Analysis, ResultsCursor};
99
use std::borrow::Cow;
1010
use std::ops::ControlFlow;

clippy_utils/src/ty.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ use rustc_lint::LateContext;
1717
use rustc_middle::mir::interpret::{ConstValue, Scalar};
1818
use rustc_middle::ty::{
1919
self, AdtDef, AliasTy, AssocKind, Binder, BoundRegion, DefIdTree, FnSig, IntTy, List, ParamEnv, Predicate,
20-
PredicateKind, Region, RegionKind, SubstsRef, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, ir::TypeVisitor, UintTy,
21-
VariantDef, VariantDiscr,
20+
PredicateKind, Region, RegionKind, SubstsRef, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitor, UintTy,
21+
VariantDef, VariantDiscr, TypeVisitableExt,
2222
};
2323
use rustc_middle::ty::{GenericArg, GenericArgKind};
2424
use rustc_span::symbol::Ident;
@@ -847,7 +847,7 @@ pub fn for_each_top_level_late_bound_region<B>(
847847
ControlFlow::Continue(())
848848
}
849849
}
850-
fn visit_binder<T: TypeVisitable<'tcx>>(&mut self, t: &Binder<'tcx, T>) -> ControlFlow<Self::BreakTy> {
850+
fn visit_binder<T: TypeVisitable<TyCtxt<'tcx>>>(&mut self, t: &Binder<'tcx, T>) -> ControlFlow<Self::BreakTy> {
851851
self.index += 1;
852852
let res = t.super_visit_with(self);
853853
self.index -= 1;

0 commit comments

Comments
 (0)