library;
//
// Problems in library:
//
// pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
//   c.x += 1;
//     ^
//
// pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart'.
// Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
//   c.x ??= 1;
//     ^
//
import self as self;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  set x(dynamic value) → void {}
}
static method test(self::C c) → void {
  c.{self::C::x} = 1;
  let final self::C #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
  c.x += 1;
    ^".+(1);
  let final self::C #t2 = c in invalid-expression "pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
  c.x ??= 1;
    ^".{core::Object::==}(null) ?{dynamic} #t2.{self::C::x} = 1 : null;
}
static method main() → dynamic {}
