Review comment
This commit is contained in:
parent
82f23d56b7
commit
8bf9c18914
@ -219,6 +219,17 @@ pub enum Const<'tcx> {
|
||||
}
|
||||
|
||||
impl<'tcx> Const<'tcx> {
|
||||
pub fn identity_unevaluated(tcx: TyCtxt<'tcx>, def_id: DefId) -> ty::EarlyBinder<Const<'tcx>> {
|
||||
ty::EarlyBinder::bind(Const::Unevaluated(
|
||||
UnevaluatedConst {
|
||||
def: def_id,
|
||||
args: ty::GenericArgs::identity_for_item(tcx, def_id),
|
||||
promoted: None,
|
||||
},
|
||||
tcx.type_of(def_id).skip_binder(),
|
||||
))
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub fn ty(&self) -> Ty<'tcx> {
|
||||
match self {
|
||||
|
@ -642,34 +642,22 @@ impl<'tcx> Cx<'tcx> {
|
||||
}
|
||||
}
|
||||
hir::InlineAsmOperand::Const { ref anon_const } => {
|
||||
let value = mir::Const::Unevaluated(
|
||||
mir::UnevaluatedConst {
|
||||
def: anon_const.def_id.to_def_id(),
|
||||
args: GenericArgs::identity_for_item(
|
||||
self.tcx,
|
||||
anon_const.def_id,
|
||||
),
|
||||
promoted: None,
|
||||
},
|
||||
tcx.type_of(anon_const.def_id).instantiate_identity(),
|
||||
let value = mir::Const::identity_unevaluated(
|
||||
tcx,
|
||||
anon_const.def_id.to_def_id(),
|
||||
)
|
||||
.instantiate_identity()
|
||||
.normalize(tcx, self.param_env);
|
||||
let span = tcx.def_span(anon_const.def_id);
|
||||
|
||||
InlineAsmOperand::Const { value, span }
|
||||
}
|
||||
hir::InlineAsmOperand::SymFn { ref anon_const } => {
|
||||
let value = mir::Const::Unevaluated(
|
||||
mir::UnevaluatedConst {
|
||||
def: anon_const.def_id.to_def_id(),
|
||||
args: GenericArgs::identity_for_item(
|
||||
self.tcx,
|
||||
anon_const.def_id,
|
||||
),
|
||||
promoted: None,
|
||||
},
|
||||
tcx.type_of(anon_const.def_id).instantiate_identity(),
|
||||
let value = mir::Const::identity_unevaluated(
|
||||
tcx,
|
||||
anon_const.def_id.to_def_id(),
|
||||
)
|
||||
.instantiate_identity()
|
||||
.normalize(tcx, self.param_env);
|
||||
let span = tcx.def_span(anon_const.def_id);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user