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

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
}
class B extends core::Object {
  synthetic constructor •() → self::B
    ;
}
extension _extension#0 on self::A {
  method foo = self::_extension#0|foo;
  tearoff foo = self::_extension#0|get#foo;
}
static method _extension#0|foo(lowered final self::A #this, self::A a, self::B b) → void
  ;
static method _extension#0|get#foo(lowered final self::A #this) → (self::A, self::B) → void
  return (self::A a, self::B b) → void => self::_extension#0|foo(#this, a, b);
static method main() → void
  ;
