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}{core::int?} 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::•()
    ;
}
