library redirecting_factory_constructors.typeparam_test;
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 field dynamic _redirecting# = <dynamic>[self::A::redir];
  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*>*
    let<BottomType> #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression;
}
static method main() → dynamic {
  new self::A::•<core::int*, core::String*>(42, "foobar");
}
