use llvm::{True, False, Bool, OperandBundleDef};
use rustc::hir::def::Def;
use rustc::hir::def_id::DefId;
+use rustc::hir::map::DefPathData;
use rustc::infer::TransNormalize;
use rustc::mir::Mir;
use rustc::util::common::MemoizationMap;
_ => bug!("unexpected type {:?} to ty_fn_sig", ty)
}
}
+
+pub fn is_closure(tcx: TyCtxt, def_id: DefId) -> bool {
+ tcx.def_key(def_id).disambiguated_data.data == DefPathData::ClosureExpr
+}
use base;
use consts;
use context::{CrateContext, SharedCrateContext};
+use common;
use declare;
use glue::DropGlueKind;
use llvm;
TransItem::Fn(ref instance) => {
!instance.def.is_local() ||
instance.substs.types().next().is_some() ||
+ common::is_closure(tcx, instance.def) ||
attr::requests_inline(&tcx.get_attrs(instance.def)[..])
}
TransItem::DropGlue(..) => true,