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

class Class<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::Class<self::Class::T%>
    : super core::Object::•()
    ;
}
extension Extension<T extends core::Object? = dynamic> on self::Class<T%> {
  method method = self::Extension|method;
  tearoff method = self::Extension|get#method;
}
static method Extension|method<T extends core::Object? = dynamic, R extends core::Object? = dynamic>(lowered final self::Class<self::Extension|method::T%> #this, self::Extension|method::T% t) → self::Extension|method::R?
  return null;
static method Extension|get#method<T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|get#method::T%> #this) → <R extends core::Object? = dynamic>(self::Extension|get#method::T%) → R?
  return <R extends core::Object? = dynamic>(self::Extension|get#method::T% t) → R? => self::Extension|method<self::Extension|get#method::T%, R%>(#this, t);
static method main() → dynamic {
  let final dynamic #t1 = self::Extension|method<core::int, dynamic>(new self::Class::•<core::int>(), 0) in #t1 == null ?{core::String?} null : #t1.{core::Object::toString}(){() → core::String};
}
