blob: d78f73faddf53740299070807ce66a7c459b253e [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
//
// Test that SpeculativeInt64ShiftOp's range is correctly inferred when the RHS
// is a nullable smi.
import 'package:expect/expect.dart';
int? getShift(List<String> args) {
return args.length == -1 ? null : 40;
}
void test(List<String> args) {
dynamic x = 1;
if (args.length <= 0) {
int? s = getShift(args);
x = x << s;
}
x += 1;
Expect.equals(x, 1099511627777);
}
void main(List<String> args) {
for (int i = 0; i < 100; ++i) {
test(args);
}
}