1
Fork 0

Remove rustc_transmute's dependence on rustc_infer.

`TransmuteTypeEnv` only needs a `TyCtxt`, not an `InferCtxt`.
This commit is contained in:
Nicholas Nethercote 2025-02-28 16:34:41 +11:00
parent 00f245915b
commit 5f58985f5d
6 changed files with 9 additions and 13 deletions

View file

@ -2544,7 +2544,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
let src = trait_pred.trait_ref.args.type_at(1);
let err_msg = format!("`{src}` cannot be safely transmuted into `{dst}`");
match rustc_transmute::TransmuteTypeEnv::new(self.infcx).is_transmutable(
match rustc_transmute::TransmuteTypeEnv::new(self.infcx.tcx).is_transmutable(
obligation.cause,
src_and_dst,
assume,

View file

@ -236,7 +236,7 @@ impl<'tcx> rustc_next_trait_solver::delegate::SolverDelegate for SolverDelegate<
};
// FIXME(transmutability): This really should be returning nested goals for `Answer::If*`
match rustc_transmute::TransmuteTypeEnv::new(&self.0).is_transmutable(
match rustc_transmute::TransmuteTypeEnv::new(self.0.tcx).is_transmutable(
ObligationCause::dummy(),
rustc_transmute::Types { src, dst },
assume,

View file

@ -424,7 +424,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
let src = predicate.trait_ref.args.type_at(1);
debug!(?src, ?dst);
let mut transmute_env = rustc_transmute::TransmuteTypeEnv::new(self.infcx);
let mut transmute_env = rustc_transmute::TransmuteTypeEnv::new(self.infcx.tcx);
let maybe_transmutable = transmute_env.is_transmutable(
obligation.cause.clone(),
rustc_transmute::Types { dst, src },