library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/number_folds_opt_out.dart:14:23: Error: '+' is not a prefix operator.
// Try removing '+'.
// const int unaryPlus = +2;
//                       ^
//
// pkg/front_end/testcases/general/constants/number_folds_opt_out.dart:10:23: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// const int divZero = 2 / 0;
//                       ^
//
import self as self;
import "dart:core" as core;

static const field core::int* shiftNegative1 = 2.{core::int::<<}(1.{core::int::unary-}());
static const field core::int* shiftNegative3 = 2.{core::int::>>}(1.{core::int::unary-}());
static const field core::int* modZero = 2.{core::num::%}(0);
static const field core::int* divZero = let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/constants/number_folds_opt_out.dart:10:23: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
const int divZero = 2 / 0;
                      ^" in 2.{core::num::/}(0) as{TypeError} core::int*;
static const field core::int* intdivZero = 2.{core::num::~/}(0);
static const field core::int* unaryMinus = 2.{core::int::unary-}();
static const field core::int* unaryTilde = 2.{core::int::~}();
static const field core::int* unaryPlus = invalid-expression "pkg/front_end/testcases/general/constants/number_folds_opt_out.dart:14:23: Error: This couldn't be parsed.
const int unaryPlus = +2;
                      ^".+(2) as{TypeError,ForDynamic} core::int*;
static const field core::int* binaryPlus = 40.{core::num::+}(2);
static const field core::int* binaryMinus = 44.{core::num::-}(2);
static const field core::int* binaryTimes = 21.{core::num::*}(2);
static const field core::double* binaryDiv = 84.{core::num::/}(2);
static const field core::int* binaryTildeDiv = 84.{core::num::~/}(2);
static const field core::int* binaryMod = 85.{core::num::%}(43);
static const field core::int* binaryOr = 32.{core::int::|}(10);
static const field core::int* binaryAnd = 63.{core::int::&}(106);
static const field core::int* binaryXor = 63.{core::int::^}(21);
static const field core::int* binaryShift1 = 21.{core::int::<<}(1);
static const field core::int* binaryShift4 = 84.{core::int::>>}(1);
static const field core::bool* binaryLess = 42.{core::num::<}(42);
static const field core::bool* binaryLessEqual = 42.{core::num::<=}(42);
static const field core::bool* binaryGreaterEqual = 42.{core::num::>=}(42);
static const field core::bool* binaryGreater = 42.{core::num::>}(42);
static const field core::int* doubleTruncateDiv = 84.2.{core::double::~/}(2);
static const field core::int* doubleTruncateDivZero = 84.2.{core::double::~/}(0);
static const field core::int* doubleTruncateDivNull = 84.2.{core::double::~/}(null);
static const field core::double* doubleNan = 0.{core::num::/}(0);
static const field core::int* doubleTruncateDivNaN = 84.2.{core::double::~/}(self::doubleNan);
static method main() → dynamic
  ;


Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:7:33 -> IntConstant(-1)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:8:33 -> IntConstant(-1)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:10:23 -> DoubleConstant(Infinity)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:12:24 -> IntConstant(-2)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:13:24 -> IntConstant(-3)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:16:27 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:17:28 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:18:28 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:19:29 -> DoubleConstant(42.0)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:20:30 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:21:26 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:22:25 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:23:26 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:24:26 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:25:29 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:27:29 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:28:28 -> BoolConstant(false)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:29:33 -> BoolConstant(true)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:30:36 -> BoolConstant(true)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:31:31 -> BoolConstant(false)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:33:36 -> IntConstant(42)
Evaluated: MethodInvocation @ org-dartlang-testcase:///number_folds_opt_out.dart:36:27 -> DoubleConstant(NaN)
Evaluated: StaticGet @ org-dartlang-testcase:///number_folds_opt_out.dart:37:42 -> DoubleConstant(NaN)
Extra constant evaluation: evaluated: 34, effectively constant: 23
