library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:27:26: Error: Constant evaluation error:
//   const Class c2 = Class.doubleShift(b, 1);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:21:45: Context: Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.doubleShift(i1, i2) : a = (i1 >> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:27:15: Context: While analyzing:
//   const Class c2 = Class.doubleShift(b, 1);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:29:26: Error: Constant evaluation error:
//   const Class c4 = Class.tripleShift(b, 1);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:22:45: Context: Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.tripleShift(i1, i2) : a = (i1 >>> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:29:15: Context: While analyzing:
//   const Class c4 = Class.tripleShift(b, 1);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:32:26: Error: Constant evaluation error:
//   const Class d2 = Class.doubleShift(1, b);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:21:45: Context: Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.doubleShift(i1, i2) : a = (i1 >> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:32:15: Context: While analyzing:
//   const Class d2 = Class.doubleShift(1, b);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:34:26: Error: Constant evaluation error:
//   const Class d4 = Class.tripleShift(1, b);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:22:45: Context: Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.tripleShift(i1, i2) : a = (i1 >>> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:34:15: Context: While analyzing:
//   const Class d4 = Class.tripleShift(1, b);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:37:26: Error: Constant evaluation error:
//   const Class e2 = Class.doubleShift(1.5, 1);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:21:45: Context: Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.doubleShift(i1, i2) : a = (i1 >> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:37:15: Context: While analyzing:
//   const Class e2 = Class.doubleShift(1.5, 1);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:39:26: Error: Constant evaluation error:
//   const Class e4 = Class.tripleShift(1.5, 1);
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:22:45: Context: Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.
//   const Class.tripleShift(i1, i2) : a = (i1 >>> i2);
//                                             ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:39:15: Context: While analyzing:
//   const Class e4 = Class.tripleShift(1.5, 1);
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:9:22: Error: Constant evaluation error:
// const dynamic c1 = b >> 1;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:9:22: Context: Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.
// const dynamic c1 = b >> 1;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:9:15: Context: While analyzing:
// const dynamic c1 = b >> 1;
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:11:22: Error: Constant evaluation error:
// const dynamic c3 = b >>> 1;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:11:22: Context: Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.
// const dynamic c3 = b >>> 1;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:11:15: Context: While analyzing:
// const dynamic c3 = b >>> 1;
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:14:22: Error: Constant evaluation error:
// const dynamic d1 = 1 >> b;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:14:25: Context: Expected constant '1.5' to be of type 'int', but was of type 'double'.
// const dynamic d1 = 1 >> b;
//                         ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:14:15: Context: While analyzing:
// const dynamic d1 = 1 >> b;
//               ^
//
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:16:22: Error: Constant evaluation error:
// const dynamic d3 = 1 >>> b;
//                      ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:16:26: Context: Expected constant '1.5' to be of type 'int', but was of type 'double'.
// const dynamic d3 = 1 >>> b;
//                          ^
// pkg/front_end/testcases/general/constants/js_semantics/on_double.dart:16:15: Context: While analyzing:
// const dynamic d3 = 1 >>> b;
//               ^
//
import self as self;
import "dart:core" as core;

class Class extends core::Object /*hasConstConstructor*/  {
  final field core::int a;
  const constructor doubleShift(dynamic i1, dynamic i2) → self::Class
    : self::Class::a = i1{dynamic}.>>(i2) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int, super core::Object::•()
    ;
  const constructor tripleShift(dynamic i1, dynamic i2) → self::Class
    : self::Class::a = i1{dynamic}.>>>(i2) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int, super core::Object::•()
    ;
  static method _#doubleShift#tearOff(dynamic i1, dynamic i2) → self::Class
    return new self::Class::doubleShift(i1, i2);
  static method _#tripleShift#tearOff(dynamic i1, dynamic i2) → self::Class
    return new self::Class::tripleShift(i1, i2);
}
static const field dynamic a = #C1;
static const field dynamic b = #C2;
static const field dynamic c0 = #C3;
static const field dynamic c1 = invalid-expression "Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
static const field dynamic c2 = #C3;
static const field dynamic c3 = invalid-expression "Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
static const field dynamic d0 = #C3;
static const field dynamic d1 = invalid-expression "Expected constant '1.5' to be of type 'int', but was of type 'double'.";
static const field dynamic d2 = #C3;
static const field dynamic d3 = invalid-expression "Expected constant '1.5' to be of type 'int', but was of type 'double'.";
static method main() → dynamic {
  const self::Class c2 = invalid-expression "Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
  const self::Class c4 = invalid-expression "Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
  const self::Class d2 = invalid-expression "Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
  const self::Class d4 = invalid-expression "Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
  const self::Class e2 = invalid-expression "Binary operator '>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
  const self::Class e4 = invalid-expression "Binary operator '>>>' on '1.5' requires operand of type 'int', but was of type 'double'.";
}

constants  {
  #C1 = 1.0
  #C2 = 1.5
  #C3 = 0.0
}


Constructor coverage from constants:
org-dartlang-testcase:///on_double.dart:
- Class.doubleShift (from org-dartlang-testcase:///on_double.dart:21:9)
- Object. (from org-dartlang-sdk:///lib/core/object.dart:25:9)
- Class.tripleShift (from org-dartlang-testcase:///on_double.dart:22:9)
