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

class C extends core::Object {
  field core::int? _#C#x = null;
  field core::bool _#C#x#isSet = false;
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  get x() → core::int
    return this.{self::C::_#C#x#isSet} ?{core::int} let final core::int? #t1 = this.{self::C::_#C#x} in #t1{core::int} : throw new _in::LateError::fieldNI("x");
  set x(covariant core::int #t2) → void
    if(this.{self::C::_#C#x#isSet})
      throw new _in::LateError::fieldAI("x");
    else {
      this.{self::C::_#C#x#isSet} = true;
      this.{self::C::_#C#x} = #t2;
    }
}
class D extends self::C {
  synthetic constructor •() → self::D
    : super self::C::•()
    ;
  set x(covariant core::num value) → void {
    super.{self::C::x} = value.{core::num::toInt}();
  }
}
static method main() → dynamic {
  new self::D::•().{self::D::x} = 3.14;
}
