library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/extensions/extension_constructor.dart:8:3: Error: Extensions can't declare constructors.
// Try removing the constructor declaration.
//   Extension() {}
//   ^^^^^^^^^
//
// pkg/front_end/testcases/extensions/extension_constructor.dart:9:3: Error: Extensions can't declare constructors.
// Try removing the constructor declaration.
//   Extension.named() {}
//   ^^^^^^^^^
//
// pkg/front_end/testcases/extensions/extension_constructor.dart:10:3: Error: Extensions can't declare constructors.
// Try removing the constructor declaration.
//   factory Extension.fact() => null;
//   ^^^^^^^
//
// pkg/front_end/testcases/extensions/extension_constructor.dart:11:3: Error: Extensions can't declare constructors.
// Try removing the constructor declaration.
//   factory Extension.redirect() = Extension;
//   ^^^^^^^
//
import self as self;
import "dart:core" as core;

class Class extends core::Object {
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
}
extension Extension on self::Class {
  method method = self::Extension|method;
  tearoff method = self::Extension|get#method;
}
static method Extension|method(lowered final self::Class #this) → dynamic {}
static method Extension|get#method(lowered final self::Class #this) → () → dynamic
  return () → dynamic => self::Extension|method(#this);
static method main() → dynamic {}
