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

class A<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
  constructor •(self::A::T% t, self::A::S% s) → self::A<self::A::T%, self::A::S%>
    : super core::Object::•()
    ;
  static factory redir<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(self::A::redir::T% t, self::A::redir::S% s) → self::A<self::A::redir::T%, self::A::redir::S%>
    return new self::A::•<self::A::redir::T%, self::A::redir::S%>(t, s);
}
static method main() → dynamic {
  new self::A::•<core::int, core::String>(42, "foobar");
}

constants  {
  #C1 = constructor-tearoff self::A::redir
}
