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