@@ -137,13 +137,13 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
137
137
source_info,
138
138
kind: mir:: StatementKind :: Assign (
139
139
mir:: Lvalue :: Local ( mir:: Local :: new( 2 ) ) ,
140
- mir:: Rvalue :: Use ( mir:: Operand :: Constant ( mir:: Constant {
140
+ mir:: Rvalue :: Use ( mir:: Operand :: Constant ( Box :: new ( mir:: Constant {
141
141
span: DUMMY_SP ,
142
142
ty: tcx. types. usize ,
143
143
literal: mir:: Literal :: Value {
144
144
value: ConstVal :: Integral ( ConstInt :: Usize ( ConstUsize :: new( 0 , tcx. sess. target. uint_type) . unwrap( ) ) ) ,
145
145
} ,
146
- } ) )
146
+ } ) ) )
147
147
)
148
148
} ,
149
149
mir:: Statement {
@@ -225,13 +225,13 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
225
225
mir:: Rvalue :: BinaryOp (
226
226
mir:: BinOp :: Add ,
227
227
mir:: Operand :: Consume ( mir:: Lvalue :: Local ( mir:: Local :: new( 2 ) ) ) ,
228
- mir:: Operand :: Constant ( mir:: Constant {
228
+ mir:: Operand :: Constant ( Box :: new ( mir:: Constant {
229
229
span: DUMMY_SP ,
230
230
ty: tcx. types. usize ,
231
231
literal: mir:: Literal :: Value {
232
232
value: ConstVal :: Integral ( ConstInt :: Usize ( ConstUsize :: new( 1 , tcx. sess. target. uint_type) . unwrap( ) ) ) ,
233
233
} ,
234
- } ) ,
234
+ } ) ) ,
235
235
)
236
236
)
237
237
} ,
@@ -636,7 +636,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
636
636
}
637
637
638
638
General { discr, ref variants, .. } => {
639
- if let mir:: AggregateKind :: Adt ( adt_def, variant, _, _) = * kind {
639
+ if let mir:: AggregateKind :: Adt ( adt_def, variant, _, _) = * * kind {
640
640
let discr_val = adt_def. discriminants ( self . tcx )
641
641
. nth ( variant)
642
642
. expect ( "broken mir: Adt variant id invalid" )
@@ -662,7 +662,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
662
662
}
663
663
664
664
RawNullablePointer { nndiscr, .. } => {
665
- if let mir:: AggregateKind :: Adt ( _, variant, _, _) = * kind {
665
+ if let mir:: AggregateKind :: Adt ( _, variant, _, _) = * * kind {
666
666
if nndiscr == variant as u64 {
667
667
assert_eq ! ( operands. len( ) , 1 ) ;
668
668
let operand = & operands[ 0 ] ;
@@ -683,7 +683,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
683
683
}
684
684
685
685
StructWrappedNullablePointer { nndiscr, ref nonnull, ref discrfield, .. } => {
686
- if let mir:: AggregateKind :: Adt ( _, variant, _, _) = * kind {
686
+ if let mir:: AggregateKind :: Adt ( _, variant, _, _) = * * kind {
687
687
if nonnull. packed {
688
688
let ptr = self . force_allocation ( dest) ?. to_ptr_and_extra ( ) . 0 ;
689
689
self . memory . mark_packed ( ptr, nonnull. stride ( ) . bytes ( ) ) ;
@@ -712,7 +712,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
712
712
713
713
CEnum { .. } => {
714
714
assert_eq ! ( operands. len( ) , 0 ) ;
715
- if let mir:: AggregateKind :: Adt ( adt_def, variant, _, _) = * kind {
715
+ if let mir:: AggregateKind :: Adt ( adt_def, variant, _, _) = * * kind {
716
716
let n = adt_def. discriminants ( self . tcx )
717
717
. nth ( variant)
718
718
. expect ( "broken mir: Adt variant index invalid" )
@@ -997,8 +997,9 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
997
997
match * op {
998
998
Consume ( ref lvalue) => self . eval_and_read_lvalue ( lvalue) ,
999
999
1000
- Constant ( mir :: Constant { ref literal , .. } ) => {
1000
+ Constant ( ref constant ) => {
1001
1001
use rustc:: mir:: Literal ;
1002
+ let mir:: Constant { ref literal, .. } = * * constant;
1002
1003
let value = match * literal {
1003
1004
Literal :: Value { ref value } => self . const_to_value ( value) ?,
1004
1005
0 commit comments