Use is_fn_like instead of matching on DefKind
This commit is contained in:
parent
1750a2f723
commit
9e6c044ee6
@ -1,6 +1,5 @@
|
|||||||
use crate::MirPass;
|
use crate::MirPass;
|
||||||
use rustc_ast::InlineAsmOptions;
|
use rustc_ast::InlineAsmOptions;
|
||||||
use rustc_hir::def::DefKind;
|
|
||||||
use rustc_middle::mir::*;
|
use rustc_middle::mir::*;
|
||||||
use rustc_middle::ty::layout;
|
use rustc_middle::ty::layout;
|
||||||
use rustc_middle::ty::{self, TyCtxt};
|
use rustc_middle::ty::{self, TyCtxt};
|
||||||
@ -31,11 +30,7 @@ impl<'tcx> MirPass<'tcx> for AbortUnwindingCalls {
|
|||||||
|
|
||||||
// We don't simplify the MIR of constants at this time because that
|
// We don't simplify the MIR of constants at this time because that
|
||||||
// namely results in a cyclic query when we call `tcx.type_of` below.
|
// namely results in a cyclic query when we call `tcx.type_of` below.
|
||||||
let is_function = match kind {
|
if !kind.is_fn_like() {
|
||||||
DefKind::Fn | DefKind::AssocFn | DefKind::Ctor(..) => true,
|
|
||||||
_ => tcx.is_closure(def_id),
|
|
||||||
};
|
|
||||||
if !is_function {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
use rustc_hir::def::DefKind;
|
|
||||||
use rustc_hir::def_id::{LocalDefId, LOCAL_CRATE};
|
use rustc_hir::def_id::{LocalDefId, LOCAL_CRATE};
|
||||||
use rustc_middle::mir::*;
|
use rustc_middle::mir::*;
|
||||||
use rustc_middle::ty::layout;
|
use rustc_middle::ty::layout;
|
||||||
@ -44,11 +43,7 @@ fn has_ffi_unwind_calls(tcx: TyCtxt<'_>, local_def_id: LocalDefId) -> bool {
|
|||||||
// Only perform check on functions because constants cannot call FFI functions.
|
// Only perform check on functions because constants cannot call FFI functions.
|
||||||
let def_id = local_def_id.to_def_id();
|
let def_id = local_def_id.to_def_id();
|
||||||
let kind = tcx.def_kind(def_id);
|
let kind = tcx.def_kind(def_id);
|
||||||
let is_function = match kind {
|
if !kind.is_fn_like() {
|
||||||
DefKind::Fn | DefKind::AssocFn | DefKind::Ctor(..) => true,
|
|
||||||
_ => tcx.is_closure(def_id),
|
|
||||||
};
|
|
||||||
if !is_function {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user