library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/extensions/issue38713.dart:7:19: Error: Conflicts with the implicit setter of the field 'property2'.
//   static void set property2(int? x) {}
//                   ^
//
// pkg/front_end/testcases/extensions/issue38713.dart:6:15: Error: Conflicts with setter 'property2'.
//   static int? property2;
//               ^
//
// pkg/front_end/testcases/extensions/issue38713.dart:9:19: Error: Conflicts with member 'property3'.
//   static void set property3(int? x) {}
//                   ^
//
// pkg/front_end/testcases/extensions/issue38713.dart:10:12: Error: Conflicts with setter 'property3'.
//   int? get property3 => 1;
//            ^
//
import self as self;
import "dart:core" as core;

extension C on core::int {
  static field property2 = self::C|property2;
  get property3 = self::C|get#property3;
  static set property3 = set self::C|property3;
}
static field core::int? C|property2;
static set C|property3(core::int? x) → void {}
static method C|get#property3(lowered final core::int #this) → core::int?
  return 1;
static method main() → void {
  self::C|property2;
  self::C|property2 = 42;
  self::C|property3 = 42;
  self::C|get#property3(42);
}
