library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:6:12: Error: Operator '>>>' should have exactly one parameter.
//   operator >>>() => true;
//            ^^^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:10:12: Error: Operator '>>>' should have exactly one parameter.
//   operator >>>(a, b) => true;
//            ^^^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:14:17: Error: An operator can't have optional parameters.
//   operator >>>([a]) => true;
//                 ^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:18:17: Error: An operator can't have optional parameters.
//   operator >>>({a}) => true;
//                 ^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:22:12: Error: Operator '>>>' should have exactly one parameter.
//   operator >>>(a, [b]) => true;
//            ^^^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:26:12: Error: Operator '>>>' should have exactly one parameter.
//   operator >>>(a, {b}) => true;
//            ^^^
//
// pkg/front_end/testcases/triple_shift/invalid_operator.dart:30:16: Error: Types parameters aren't allowed when defining an operator.
// Try removing the type parameters.
//   operator >>><T>(a) => true;
//                ^
//
import self as self;
import "dart:core" as core;

class Operators1 extends core::Object {
  synthetic constructor •() → self::Operators1
    ;
  operator >>>() → dynamic
    ;
}
class Operators2 extends core::Object {
  synthetic constructor •() → self::Operators2
    ;
  operator >>>(dynamic a, dynamic b) → dynamic
    ;
}
class Operators3 extends core::Object {
  synthetic constructor •() → self::Operators3
    ;
  operator >>>([dynamic a = null]) → dynamic
    ;
}
class Operators4 extends core::Object {
  synthetic constructor •() → self::Operators4
    ;
  operator >>>({dynamic a = null}) → dynamic
    ;
}
class Operators5 extends core::Object {
  synthetic constructor •() → self::Operators5
    ;
  operator >>>(dynamic a, [dynamic b = null]) → dynamic
    ;
}
class Operators6 extends core::Object {
  synthetic constructor •() → self::Operators6
    ;
  operator >>>(dynamic a, {dynamic b = null}) → dynamic
    ;
}
class Operators7 extends core::Object {
  synthetic constructor •() → self::Operators7
    ;
  operator >>><T extends core::Object? = dynamic>(dynamic a) → dynamic
    ;
}
static method main() → dynamic
  ;
