diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2022-03-29 23:50:01 +0200 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2022-04-10 13:08:36 +0200 |
| commit | db03a2deb090d5c24f15ef30cf4e5ccb13690b9d (patch) | |
| tree | 0658d8e510c686e9554992b8013f977d71ce8c3e /compiler/rustc_mir_transform/src | |
| parent | 341883d051ebbfaa6daa456b198d557fa0272b71 (diff) | |
| download | rust-db03a2deb090d5c24f15ef30cf4e5ccb13690b9d.tar.gz rust-db03a2deb090d5c24f15ef30cf4e5ccb13690b9d.zip | |
Avoid accessing HIR from MIR queries.
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/const_prop.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/const_prop_lint.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/lib.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/shim.rs | 5 |
4 files changed, 7 insertions, 7 deletions
diff --git a/compiler/rustc_mir_transform/src/const_prop.rs b/compiler/rustc_mir_transform/src/const_prop.rs index a342aeed905..aa47630a26a 100644 --- a/compiler/rustc_mir_transform/src/const_prop.rs +++ b/compiler/rustc_mir_transform/src/const_prop.rs @@ -71,8 +71,9 @@ impl<'tcx> MirPass<'tcx> for ConstProp { } let def_id = body.source.def_id().expect_local(); - let is_fn_like = tcx.hir().get_by_def_id(def_id).fn_kind().is_some(); - let is_assoc_const = tcx.def_kind(def_id) == DefKind::AssocConst; + let def_kind = tcx.def_kind(def_id); + let is_fn_like = def_kind.is_fn_like(); + let is_assoc_const = def_kind == DefKind::AssocConst; // Only run const prop on functions, methods, closures and associated constants if !is_fn_like && !is_assoc_const { diff --git a/compiler/rustc_mir_transform/src/const_prop_lint.rs b/compiler/rustc_mir_transform/src/const_prop_lint.rs index 159503ad2d3..50400cdeac9 100644 --- a/compiler/rustc_mir_transform/src/const_prop_lint.rs +++ b/compiler/rustc_mir_transform/src/const_prop_lint.rs @@ -67,7 +67,7 @@ impl<'tcx> MirLint<'tcx> for ConstProp { } let def_id = body.source.def_id().expect_local(); - let is_fn_like = tcx.hir().get_by_def_id(def_id).fn_kind().is_some(); + let is_fn_like = tcx.def_kind(def_id).is_fn_like(); let is_assoc_const = tcx.def_kind(def_id) == DefKind::AssocConst; // Only run const prop on functions, methods, closures and associated constants diff --git a/compiler/rustc_mir_transform/src/lib.rs b/compiler/rustc_mir_transform/src/lib.rs index 059ee09dfd7..d395ccd3819 100644 --- a/compiler/rustc_mir_transform/src/lib.rs +++ b/compiler/rustc_mir_transform/src/lib.rs @@ -366,7 +366,7 @@ fn mir_drops_elaborated_and_const_checked<'tcx>( let mir_borrowck = tcx.mir_borrowck_opt_const_arg(def); - let is_fn_like = tcx.hir().get_by_def_id(def.did).fn_kind().is_some(); + let is_fn_like = tcx.def_kind(def.did).is_fn_like(); if is_fn_like { let did = def.did.to_def_id(); let def = ty::WithOptConstParam::unknown(did); diff --git a/compiler/rustc_mir_transform/src/shim.rs b/compiler/rustc_mir_transform/src/shim.rs index bf031b423c2..d10cac2ac76 100644 --- a/compiler/rustc_mir_transform/src/shim.rs +++ b/compiler/rustc_mir_transform/src/shim.rs @@ -725,9 +725,6 @@ fn build_call_shim<'tcx>( pub fn build_adt_ctor(tcx: TyCtxt<'_>, ctor_id: DefId) -> Body<'_> { debug_assert!(tcx.is_constructor(ctor_id)); - let span = - tcx.hir().span_if_local(ctor_id).unwrap_or_else(|| bug!("no span for ctor {:?}", ctor_id)); - let param_env = tcx.param_env(ctor_id); // Normalize the sig. @@ -740,6 +737,8 @@ pub fn build_adt_ctor(tcx: TyCtxt<'_>, ctor_id: DefId) -> Body<'_> { debug!("build_ctor: ctor_id={:?} sig={:?}", ctor_id, sig); + let span = tcx.def_span(ctor_id); + let local_decls = local_decls_for_sig(&sig, span); let source_info = SourceInfo::outermost(span); |
