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

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  method foo() → void
    ;
}
extension E on self::A {
  method bar = self::E|bar;
  tearoff bar = self::E|get#bar;
}
extension type ET on self::A {
  method baz = self::ET|baz;
  tearoff baz = self::ET|get#baz;
}
static method E|bar(lowered final self::A #this) → void
  ;
static method E|get#bar(lowered final self::A #this) → () → void
  return () → void => self::E|bar(#this);
static method ET|baz(lowered final self::A #this) → void
  ;
static method ET|get#baz(lowered final self::A #this) → () → void
  return () → void => self::ET|baz(#this);
static method test(self::A a, self::E e, self::ET et) → dynamic
  ;
static method main() → dynamic
  ;
