X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=compiler%2Frustc_middle%2Fsrc%2Fty%2Fmod.rs;h=7681041863e9ad1fc75fc3103dbdfc1bc0d498ff;hb=c748f32ee45ed42eaab4d6a62dc64720b5096c68;hp=ddb78d91759f94e4f2bcf23128194f3002f8279b;hpb=604cbdcfddb959cd1d7de2f9afa14a199561a428;p=rust.git diff --git a/compiler/rustc_middle/src/ty/mod.rs b/compiler/rustc_middle/src/ty/mod.rs index ddb78d91759..7681041863e 100644 --- a/compiler/rustc_middle/src/ty/mod.rs +++ b/compiler/rustc_middle/src/ty/mod.rs @@ -674,6 +674,15 @@ pub struct CapturedPlace<'tcx> { pub mutability: hir::Mutability, } +impl CapturedPlace<'tcx> { + pub fn get_root_variable(&self) -> hir::HirId { + match self.place.base { + HirPlaceBase::Upvar(upvar_id) => upvar_id.var_path.hir_id, + base => bug!("Expected upvar, found={:?}", base), + } + } +} + pub fn place_to_string_for_capture(tcx: TyCtxt<'tcx>, place: &HirPlace<'tcx>) -> String { let name = match place.base { HirPlaceBase::Upvar(upvar_id) => tcx.hir().name(upvar_id.var_path.hir_id).to_string(),