Move has_rustc_mir_with
.
`lib.rs` is a strange place for it, and it's only used within `rustc_peek.rs`, so it doesn't need to be `pub`.
This commit is contained in:
parent
36b25f5386
commit
e7781c75f8
@ -13,12 +13,9 @@ extern crate tracing;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate rustc_middle;
|
extern crate rustc_middle;
|
||||||
|
|
||||||
use rustc_ast::MetaItem;
|
|
||||||
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
|
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
|
||||||
use rustc_fluent_macro::fluent_messages;
|
use rustc_fluent_macro::fluent_messages;
|
||||||
use rustc_hir::def_id::DefId;
|
use rustc_middle::ty;
|
||||||
use rustc_middle::ty::{self, TyCtxt};
|
|
||||||
use rustc_span::symbol::{sym, Symbol};
|
|
||||||
|
|
||||||
pub use self::drop_flag_effects::{
|
pub use self::drop_flag_effects::{
|
||||||
drop_flag_effects_for_function_entry, drop_flag_effects_for_location,
|
drop_flag_effects_for_function_entry, drop_flag_effects_for_location,
|
||||||
@ -55,16 +52,3 @@ pub struct MoveDataParamEnv<'tcx> {
|
|||||||
pub move_data: MoveData<'tcx>,
|
pub move_data: MoveData<'tcx>,
|
||||||
pub param_env: ty::ParamEnv<'tcx>,
|
pub param_env: ty::ParamEnv<'tcx>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn has_rustc_mir_with(tcx: TyCtxt<'_>, def_id: DefId, name: Symbol) -> Option<MetaItem> {
|
|
||||||
for attr in tcx.get_attrs(def_id, sym::rustc_mir) {
|
|
||||||
let items = attr.meta_item_list();
|
|
||||||
for item in items.iter().flat_map(|l| l.iter()) {
|
|
||||||
match item.meta_item() {
|
|
||||||
Some(mi) if mi.has_name(name) => return Some(mi.clone()),
|
|
||||||
_ => continue,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None
|
|
||||||
}
|
|
||||||
|
@ -10,19 +10,33 @@ use crate::move_paths::{HasMoveData, MoveData};
|
|||||||
use crate::move_paths::{LookupResult, MovePathIndex};
|
use crate::move_paths::{LookupResult, MovePathIndex};
|
||||||
use crate::MoveDataParamEnv;
|
use crate::MoveDataParamEnv;
|
||||||
use crate::{Analysis, JoinSemiLattice, ResultsCursor};
|
use crate::{Analysis, JoinSemiLattice, ResultsCursor};
|
||||||
|
use rustc_ast::MetaItem;
|
||||||
|
use rustc_hir::def_id::DefId;
|
||||||
use rustc_index::bit_set::ChunkedBitSet;
|
use rustc_index::bit_set::ChunkedBitSet;
|
||||||
use rustc_middle::mir::MirPass;
|
use rustc_middle::mir::MirPass;
|
||||||
use rustc_middle::mir::{self, Body, Local, Location};
|
use rustc_middle::mir::{self, Body, Local, Location};
|
||||||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||||
use rustc_span::symbol::sym;
|
use rustc_span::symbol::{sym, Symbol};
|
||||||
use rustc_span::Span;
|
use rustc_span::Span;
|
||||||
|
|
||||||
pub struct SanityCheck;
|
pub struct SanityCheck;
|
||||||
|
|
||||||
|
pub fn has_rustc_mir_with(tcx: TyCtxt<'_>, def_id: DefId, name: Symbol) -> Option<MetaItem> {
|
||||||
|
for attr in tcx.get_attrs(def_id, sym::rustc_mir) {
|
||||||
|
let items = attr.meta_item_list();
|
||||||
|
for item in items.iter().flat_map(|l| l.iter()) {
|
||||||
|
match item.meta_item() {
|
||||||
|
Some(mi) if mi.has_name(name) => return Some(mi.clone()),
|
||||||
|
_ => continue,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: This should be a `MirLint`, but it needs to be moved back to `rustc_mir_transform` first.
|
// FIXME: This should be a `MirLint`, but it needs to be moved back to `rustc_mir_transform` first.
|
||||||
impl<'tcx> MirPass<'tcx> for SanityCheck {
|
impl<'tcx> MirPass<'tcx> for SanityCheck {
|
||||||
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
||||||
use crate::has_rustc_mir_with;
|
|
||||||
let def_id = body.source.def_id();
|
let def_id = body.source.def_id();
|
||||||
if !tcx.has_attr(def_id, sym::rustc_mir) {
|
if !tcx.has_attr(def_id, sym::rustc_mir) {
|
||||||
debug!("skipping rustc_peek::SanityCheck on {}", tcx.def_path_str(def_id));
|
debug!("skipping rustc_peek::SanityCheck on {}", tcx.def_path_str(def_id));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user