@@ -274,14 +274,14 @@ impl<'a, 'tcx> Opt<'a, 'tcx> {
274
274
match * self {
275
275
ConstantValue ( ConstantExpr ( lit_expr) ) => {
276
276
let lit_ty = ty:: node_id_to_type ( bcx. tcx ( ) , lit_expr. id ) ;
277
- let ( llval, _) = consts:: const_expr ( ccx, & * lit_expr) ;
277
+ let ( llval, _) = consts:: const_expr ( ccx, & * lit_expr, bcx . fcx . param_substs ) ;
278
278
let lit_datum = immediate_rvalue ( llval, lit_ty) ;
279
279
let lit_datum = unpack_datum ! ( bcx, lit_datum. to_appropriate_datum( bcx) ) ;
280
280
SingleResult ( Result :: new ( bcx, lit_datum. val ) )
281
281
}
282
282
ConstantRange ( ConstantExpr ( ref l1) , ConstantExpr ( ref l2) ) => {
283
- let ( l1, _) = consts:: const_expr ( ccx, & * * l1) ;
284
- let ( l2, _) = consts:: const_expr ( ccx, & * * l2) ;
283
+ let ( l1, _) = consts:: const_expr ( ccx, & * * l1, bcx . fcx . param_substs ) ;
284
+ let ( l2, _) = consts:: const_expr ( ccx, & * * l2, bcx . fcx . param_substs ) ;
285
285
RangeResult ( Result :: new ( bcx, l1) , Result :: new ( bcx, l2) )
286
286
}
287
287
Variant ( disr_val, ref repr, _) => {
@@ -795,8 +795,8 @@ fn compare_values<'blk, 'tcx>(cx: Block<'blk, 'tcx>,
795
795
796
796
let _icx = push_ctxt ( "compare_values" ) ;
797
797
if ty:: type_is_scalar ( rhs_t) {
798
- let rs = compare_scalar_types ( cx, lhs, rhs, rhs_t, ast:: BiEq ) ;
799
- return Result :: new ( rs . bcx , rs . val ) ;
798
+ let cmp = compare_scalar_types ( cx, lhs, rhs, rhs_t, ast:: BiEq ) ;
799
+ return Result :: new ( cx , cmp ) ;
800
800
}
801
801
802
802
match rhs_t. sty {
@@ -1122,18 +1122,15 @@ fn compile_submatch_continue<'a, 'p, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>,
1122
1122
}
1123
1123
RangeResult ( Result { val : vbegin, .. } ,
1124
1124
Result { bcx, val : vend } ) => {
1125
- let Result { bcx, val : llge } =
1126
- compare_scalar_types (
1127
- bcx, test_val,
1128
- vbegin, t, ast:: BiGe ) ;
1129
- let Result { bcx, val : llle } =
1130
- compare_scalar_types (
1131
- bcx, test_val, vend,
1132
- t, ast:: BiLe ) ;
1125
+ let llge = compare_scalar_types ( bcx, test_val, vbegin,
1126
+ t, ast:: BiGe ) ;
1127
+ let llle = compare_scalar_types ( bcx, test_val, vend,
1128
+ t, ast:: BiLe ) ;
1133
1129
Result :: new ( bcx, And ( bcx, llge, llle, DebugLoc :: None ) )
1134
1130
}
1135
1131
LowerBound ( Result { bcx, val } ) => {
1136
- compare_scalar_types ( bcx, test_val, val, t, ast:: BiGe )
1132
+ Result :: new ( bcx, compare_scalar_types ( bcx, test_val, val,
1133
+ t, ast:: BiGe ) )
1137
1134
}
1138
1135
}
1139
1136
} ;
0 commit comments