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

import "dart:core" as prefixedCore;
import "dart:core";

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  abstract operator *(self::A other) → self::A;
}
class B<X extends core::Object? = dynamic> extends core::Object implements self::A {
  synthetic constructor •() → self::B<self::B::X%>
    ;
  get foo() → core::bool
    ;
  operator *(self::A other) → self::A
    ;
}
class C extends self::B<core::int> {
  synthetic constructor •() → self::C
    ;
  set bar(core::int value) → void
    ;
  method baz() → void
    ;
}
extension type E0 on core::int show-operators core::num::* {
}
extension type E1 on core::int show-getters core::int::isEven {
}
extension type E2<T extends core::Object? = dynamic> on core::List<T%> show-setters core::List::length {
}
extension type E3 on core::int show-types core::num {
}
extension type E4 on core::List<core::int> show-types core::Iterable<core::int> {
}
extension type E5 on core::List<dynamic> show-types core::Iterable<dynamic> {
}
extension type E6 on core::List<core::int> show-types core::Iterable<core::int> {
}
extension type E on self::C show-types self::B<core::int> show-methods self::C::baz show-getters self::C::baz, self::B::foo show-setters self::C::bar show-operators self::B::* {
}
static method main() → dynamic
  ;
