Rollup merge of #137213 - nnethercote:rm-rustc_middle-mir-tcx, r=compiler-errors
Remove `rustc_middle::mir::tcx` module. This is a really weird module. For example, what does `tcx` in `rustc_middle::mir::tcx::PlaceTy` mean? The answer is "not much". The top-level module comment says: > Methods for the various MIR types. These are intended for use after > building is complete. Awfully broad for a module that has a handful of impl blocks for some MIR types, none of which really relates to `TyCtxt`. `git blame` indicates the comment is ancient, from 2015, and made sense then. This module is now vestigial. This commit removes it and moves all the code within into `rustc_middle::mir::statement`. Some specifics: - `Place`, `PlaceRef`, `Rvalue`, `Operand`, `BorrowKind`: they all have `impl` blocks in both the `tcx` and `statement` modules. The commit merges the former into the latter. - `BinOp`, `UnOp`: they only have `impl` blocks in `tcx`. The commit moves these into `statement`. - `PlaceTy`, `RvalueInitializationState`: they are defined in `tcx`. This commit moves them into `statement` *and* makes them available in `mir::*`, like many other MIR types. r? `@tmandry`
This commit is contained in:
commit
34535b6078
13 changed files with 402 additions and 430 deletions
|
@ -185,7 +185,7 @@ where
|
|||
place.ty(self.elaborator.body(), self.tcx()).ty
|
||||
} else {
|
||||
// We don't have a slice with all the locals, since some are in the patch.
|
||||
tcx::PlaceTy::from_ty(self.elaborator.patch_ref().local_ty(place.local))
|
||||
PlaceTy::from_ty(self.elaborator.patch_ref().local_ty(place.local))
|
||||
.multi_projection_ty(self.elaborator.tcx(), place.projection)
|
||||
.ty
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue