library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:6:37: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int get a => runtimeType.hashCode xor null.hashCode;
//                                     ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:11:41: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int get e => 1 + runtimeType.hashCode xor null.hashCode + 3;
//                                         ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:16:28: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int i(int x, int y) => x xor y;
//                            ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:23:32: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int o(int x, int y) => 1 + x xor y + 3;
//                                ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:36:31: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   Key(int x, int y) : foo = x xor y, bar = x xor y {
//                               ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:36:46: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   Key(int x, int y) : foo = x xor y, bar = x xor y {
//                                              ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:8:43: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int get c { return runtimeType.hashCode xor null.hashCode; }
//                                           ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:13:47: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int get g { return 1 + runtimeType.hashCode xor null.hashCode + 3; }
//                                               ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:18:34: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int k(int x, int y) { return x xor y; }
//                                  ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:20:36: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int m(int x, int y) { int z =  x xor y; return z; }
//                                    ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:25:38: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//   int q(int x, int y) { return 1 + x xor y + 3; }
//                                      ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:29:9: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//     s(x xor y, x xor y);
//         ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:29:18: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//     s(x xor y, x xor y);
//                  ^^^
//
// pkg/front_end/testcases/general/error_recovery/issue_26810.dart:37:22: Error: Binary operator 'xor' is written as '^' instead of the written out word.
// Try replacing 'xor' with '^'.
//     print("hello ${x xor y}");
//                      ^^^
//
import self as self;
import "dart:core" as core;

abstract class Key extends core::Object {
  field core::int foo;
  field core::int bar;
  constructor •(core::int x, core::int y) → self::Key
    : self::Key::foo = x.{core::int::^}(y){(core::int) → core::int}, self::Key::bar = x.{core::int::^}(y){(core::int) → core::int}, super core::Object::•() {
    core::print("hello ${x.{core::int::^}(y){(core::int) → core::int}}");
  }
  constructor NotDuplicate(core::int x, core::int y) → self::Key
    : self::Key::foo = x.{core::int::^}(y){(core::int) → core::int}, self::Key::bar = x.{core::int::^}(y){(core::int) → core::int}, super core::Object::•() {
    core::print("hello ${x.{core::int::^}(y){(core::int) → core::int}}");
  }
  get a() → core::int
    return this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}){(core::int) → core::int};
  get b() → core::int
    return this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}){(core::int) → core::int};
  get c() → core::int {
    return this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}){(core::int) → core::int};
  }
  get d() → core::int {
    return this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}){(core::int) → core::int};
  }
  get e() → core::int
    return 1.{core::num::+}(this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}){(core::num) → core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  get f() → core::int
    return 1.{core::num::+}(this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}){(core::num) → core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  get g() → core::int {
    return 1.{core::num::+}(this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}){(core::num) → core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  }
  get h() → core::int {
    return 1.{core::num::+}(this.{core::Object::runtimeType}{core::Type}.{core::Type::hashCode}{core::int}){(core::num) → core::int}.{core::int::^}(null.{core::Object::hashCode}{core::int}.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  }
  method i(core::int x, core::int y) → core::int
    return x.{core::int::^}(y){(core::int) → core::int};
  method j(core::int x, core::int y) → core::int
    return x.{core::int::^}(y){(core::int) → core::int};
  method k(core::int x, core::int y) → core::int {
    return x.{core::int::^}(y){(core::int) → core::int};
  }
  method l(core::int x, core::int y) → core::int {
    return x.{core::int::^}(y){(core::int) → core::int};
  }
  method m(core::int x, core::int y) → core::int {
    core::int z = x.{core::int::^}(y){(core::int) → core::int};
    return z;
  }
  method n(core::int x, core::int y) → core::int {
    core::int z = x.{core::int::^}(y){(core::int) → core::int};
    return z;
  }
  method o(core::int x, core::int y) → core::int
    return 1.{core::num::+}(x){(core::num) → core::int}.{core::int::^}(y.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  method p(core::int x, core::int y) → core::int
    return 1.{core::num::+}(x){(core::num) → core::int}.{core::int::^}(y.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  method q(core::int x, core::int y) → core::int {
    return 1.{core::num::+}(x){(core::num) → core::int}.{core::int::^}(y.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  }
  method r(core::int x, core::int y) → core::int {
    return 1.{core::num::+}(x){(core::num) → core::int}.{core::int::^}(y.{core::num::+}(3){(core::num) → core::int}){(core::int) → core::int};
  }
  method s(core::int x, core::int y) → dynamic {
    this.{self::Key::s}(x.{core::int::^}(y){(core::int) → core::int}, x.{core::int::^}(y){(core::int) → core::int}){(core::int, core::int) → dynamic};
    this.{self::Key::s}(x.{core::int::^}(y){(core::int) → core::int}, x.{core::int::^}(y){(core::int) → core::int}){(core::int, core::int) → dynamic};
  }
}
static method main() → dynamic {}
