library /*isNonNullableByDefault*/;
import self as self;
import "dart:test" as test;

import "dart:test";

static method main() → dynamic {
  test::A a;
}

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

abstract class A extends core::Object {
  field core::int? _#A#x = null;
  synthetic constructor •() → test::A
    : super core::Object::•()
    ;
  get x() → core::int
    return let final core::int? #t1 = this.{test::A::_#A#x} in #t1.==(null) ?{core::int} throw new _in::LateError::fieldNI("x") : #t1{core::int};
  set x(core::int #t2) → void
    this.{test::A::_#A#x} = #t2;
}
class _B extends core::Object implements test::A {
  field core::int x = 3;
  synthetic constructor •() → test::_B
    : super core::Object::•()
    ;
}
