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

class Class extends core::Object {
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
  get property() → core::int
    return 42;
  set property(core::int value) → void {}
}
extension /* unnamed */ _extension#0 on self::Class? {
  get property = self::_extension#0|get#property;
}
static method _extension#0|get#property(lowered final self::Class? #this) → core::int
  return 42;
static method test(self::Class? c) → void {
  self::_extension#0|get#property(c);
}
