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

class C extends core::Object {
  synthetic constructor •() → self::C
    ;
}
extension E on self::C {
  method f = self::E|f;
  tearoff f = self::E|get#f;
}
static method E|f(lowered final self::C #this, core::String b) → void
  ;
static method E|get#f(lowered final self::C #this) → (core::String) → void
  return (core::String b) → void => self::E|f(#this, b);
static method main() → void
  ;
