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

class A extends core::Object {
  field core::String text = "";
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
extension _extension#0 on self::A? {
  get text = self::_extension#0|get#text;
}
static method _extension#0|get#text(lowered final self::A? #this) → core::String
  return "Lily was here";
static method main() → void {
  self::A? a = null;
  self::expect("Lily was here", self::_extension#0|get#text(a));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
  if(!expected.{core::Object::==}(actual))
    throw "Expected ${expected}, actual ${actual}";
}
