library;
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 /* unnamed */ _extension#0 on self::A? {
  get text = self::_extension#0|get#text;
}
static extension-member method _extension#0|get#text(lowered final self::A? #this) → core::String
  return "Lily was here";
static method main() → void {
  has-declared-initializer 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::==}{(core::Object) → core::bool} actual))
    throw "Expected ${expected}, actual ${actual}";
}
