Skip to content

Commit f31fc31

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 93fdcfa + d9751e4 commit f31fc31

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/common.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ impl<'tcx> HasTargetSpec for FunctionCx<'_, '_, 'tcx> {
374374
impl<'tcx> FunctionCx<'_, '_, 'tcx> {
375375
pub(crate) fn monomorphize<T>(&self, value: T) -> T
376376
where
377-
T: TypeFoldable<'tcx> + Copy,
377+
T: TypeFoldable<TyCtxt<'tcx>> + Copy,
378378
{
379379
self.instance.subst_mir_and_normalize_erasing_regions(
380380
self.tcx,

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ mod prelude {
8686
pub(crate) use rustc_middle::ty::layout::{self, LayoutOf, TyAndLayout};
8787
pub(crate) use rustc_middle::ty::{
8888
self, FloatTy, Instance, InstanceDef, IntTy, ParamEnv, Ty, TyCtxt, TypeAndMut,
89-
TypeFoldable, UintTy,
89+
TypeFoldable, TypeVisitableExt, UintTy,
9090
};
9191
pub(crate) use rustc_target::abi::{Abi, Scalar, Size, VariantIdx};
9292

0 commit comments

Comments
 (0)