library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;

class A extends core::Object {
  field core::int? _#A#x = null;
  field core::bool _#A#x#isSet = false;
  constructor foo(core::int x) → self::A
    : self::A::_#A#x#isSet = true, self::A::_#A#x = x, super core::Object::•()
    ;
  constructor bar() → self::A
    : super core::Object::•()
    ;
  get x() → core::int
    return this.{self::A::_#A#x#isSet} ?{core::int} let final core::int? #t1 = this.{self::A::_#A#x} in #t1{core::int} : throw new _in::LateError::fieldNI("x");
  set x(core::int #t2) → void {
    this.{self::A::_#A#x#isSet} = true;
    this.{self::A::_#A#x} = #t2;
  }
}
static method main() → dynamic {}
