library;
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} = (let final self::C #t2 = #t1 in invalid-expression "pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:13:33: Error: The getter 'x' isn't defined for the class '#lib1::C'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
  c. /*@error=UndefinedGetter*/ x += 1;
                                ^").+(1);
  let final self::C #t3 = c in (let final self::C #t4 = #t3 in invalid-expression "pkg/front_end/testcases/undefined_getter_in_compound_assignment.dart:14:33: Error: The getter 'x' isn't defined for the class '#lib1::C'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
  c. /*@error=UndefinedGetter*/ x ??= 1;
                                ^").{core::Object::==}(null) ?{dynamic} #t3.{self::C::x} = 1 : null;
}
static method main() → dynamic {}
