//
// Problems in component:
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:5:30: Error: Constant evaluation error:
// const int shiftNegative1 = 2 << -1;
//                              ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:5:30: Context: Binary operator '<<' on '2.0' requires non-negative operand, but was '-1.0'.
// const int shiftNegative1 = 2 << -1;
//                              ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:5:11: Context: While analyzing:
// const int shiftNegative1 = 2 << -1;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:7:30: Error: Constant evaluation error:
// const int shiftNegative3 = 2 >> -1;
//                              ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:7:30: Context: Binary operator '>>' on '2.0' requires non-negative operand, but was '-1.0'.
// const int shiftNegative3 = 2 >> -1;
//                              ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:7:11: Context: While analyzing:
// const int shiftNegative3 = 2 >> -1;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:8:23: Error: Constant evaluation error:
// const int modZero = 2 % 0;
//                       ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:8:23: Context: Binary operator '%' on '2.0' requires non-zero divisor, but divisor was '0'.
// const int modZero = 2 % 0;
//                       ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:8:11: Context: While analyzing:
// const int modZero = 2 % 0;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:10:26: Error: Constant evaluation error:
// const int intdivZero = 2 ~/ 0;
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:10:26: Context: Binary operator '~/' on '2.0' requires non-zero divisor, but divisor was '0'.
// const int intdivZero = 2 ~/ 0;
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:10:11: Context: While analyzing:
// const int intdivZero = 2 ~/ 0;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:38:40: Error: Constant evaluation error:
// const int doubleTruncateDivZero = 84.2 ~/ 0;
//                                        ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:38:40: Context: Binary operator '~/' on '84.2' requires non-zero divisor, but divisor was '0'.
// const int doubleTruncateDivZero = 84.2 ~/ 0;
//                                        ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:38:11: Context: While analyzing:
// const int doubleTruncateDivZero = 84.2 ~/ 0;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:39:40: Error: Constant evaluation error:
// const int doubleTruncateDivNull = 84.2 ~/ null;
//                                        ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:39:40: Context: Binary operator '~/' on '84.2' requires operand of type 'num', but was of type 'Null'.
// const int doubleTruncateDivNull = 84.2 ~/ null;
//                                        ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:39:11: Context: While analyzing:
// const int doubleTruncateDivNull = 84.2 ~/ null;
//           ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:41:39: Error: Constant evaluation error:
// const int doubleTruncateDivNaN = 84.2 ~/ doubleNan;
//                                       ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:41:39: Context: Binary operator '84.2 ~/ NaN' results is Infinity or NaN.
// const int doubleTruncateDivNaN = 84.2 ~/ doubleNan;
//                                       ^
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:41:11: Context: While analyzing:
// const int doubleTruncateDivNaN = 84.2 ~/ doubleNan;
//           ^
//
library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:13:23: Error: '+' is not a prefix operator.
// Try removing '+'.
// const int unaryPlus = +2;
//                       ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:6:30: Error: The operator '>>>' isn't defined for the class 'int'.
// Try correcting the operator to an existing operator, or defining a '>>>' operator.
// const int shiftNegative2 = 2 >>> -1;
//                              ^^^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:9:23: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// const int divZero = 2 / 0;
//                       ^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:27:29: Error: The operator '>>>' isn't defined for the class 'int'.
// Try correcting the operator to an existing operator, or defining a '>>>' operator.
// const int binaryShift2 = 84 >>> 1;
//                             ^^^
//
// pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:28:29: Error: The operator '>>>' isn't defined for the class 'int'.
// Try correcting the operator to an existing operator, or defining a '>>>' operator.
// const int binaryShift3 = 21 >>> 64;
//                             ^^^
//
import self as self;
import "dart:core" as core;

static const field core::int* shiftNegative1 = invalid-expression "Binary operator '<<' on '2.0' requires non-negative operand, but was '-1.0'.";
static const field core::int* shiftNegative2 = invalid-expression "pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:6:30: Error: The operator '>>>' isn't defined for the class 'int'.
Try correcting the operator to an existing operator, or defining a '>>>' operator.
const int shiftNegative2 = 2 >>> -1;
                             ^^^";
static const field core::int* shiftNegative3 = invalid-expression "Binary operator '>>' on '2.0' requires non-negative operand, but was '-1.0'.";
static const field core::int* modZero = invalid-expression "Binary operator '%' on '2.0' requires non-zero divisor, but divisor was '0'.";
static const field core::int* divZero = invalid-expression "pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:9:23: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
const int divZero = 2 / 0;
                      ^";
static const field core::int* intdivZero = invalid-expression "Binary operator '~/' on '2.0' requires non-zero divisor, but divisor was '0'.";
static const field core::int* unaryMinus = #C1;
static const field core::int* unaryTilde = #C2;
static const field core::int* unaryPlus = invalid-expression "pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:13:23: Error: This couldn't be parsed.
const int unaryPlus = +2;
                      ^";
static const field core::int* binaryPlus = #C3;
static const field core::int* binaryMinus = #C3;
static const field core::int* binaryTimes = #C3;
static const field core::double* binaryDiv = #C3;
static const field core::int* binaryTildeDiv = #C3;
static const field core::int* binaryMod = #C3;
static const field core::int* binaryOr = #C3;
static const field core::int* binaryAnd = #C3;
static const field core::int* binaryXor = #C3;
static const field core::int* binaryShift1 = #C3;
static const field core::int* binaryShift2 = invalid-expression "pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:27:29: Error: The operator '>>>' isn't defined for the class 'int'.
Try correcting the operator to an existing operator, or defining a '>>>' operator.
const int binaryShift2 = 84 >>> 1;
                            ^^^";
static const field core::int* binaryShift3 = invalid-expression "pkg/front_end/testcases/general/constants/js_semantics/number_folds.dart:28:29: Error: The operator '>>>' isn't defined for the class 'int'.
Try correcting the operator to an existing operator, or defining a '>>>' operator.
const int binaryShift3 = 21 >>> 64;
                            ^^^";
static const field core::int* binaryShift4 = #C3;
static const field core::int* binaryShift5 = #C4;
static const field core::bool* binaryLess = #C5;
static const field core::bool* binaryLessEqual = #C6;
static const field core::bool* binaryGreaterEqual = #C6;
static const field core::bool* binaryGreater = #C5;
static const field core::int* doubleTruncateDiv = #C3;
static const field core::int* doubleTruncateDivZero = invalid-expression "Binary operator '~/' on '84.2' requires non-zero divisor, but divisor was '0'.";
static const field core::int* doubleTruncateDivNull = invalid-expression "Binary operator '~/' on '84.2' requires operand of type 'num', but was of type 'Null'.";
static const field core::double* doubleNan = #C7;
static const field core::int* doubleTruncateDivNaN = invalid-expression "Binary operator '84.2 ~/ NaN' results is Infinity or NaN.";
static const field core::int* bigNumber = #C8;
static method main() → dynamic {}

constants  {
  #C1 = -2.0
  #C2 = 4294967293.0
  #C3 = 42.0
  #C4 = 4294967295.0
  #C5 = false
  #C6 = true
  #C7 = NaN
  #C8 = 9223372036854776000.0
}
