library;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;

class A extends core::Object {
  static field dynamic _redirecting# = <dynamic>[self::A::•];
  const constructor empty() → void
    : super core::Object::•()
    ;
  static factory •() → self::A
    let dynamic #redirecting_factory = self::B::• in let core::String #typeArg0 = null in invalid-expression;
}
class B<T extends core::Object> extends self::A {
  const constructor •() → void
    : super self::A::empty()
    ;
  method toString() → dynamic
    return "${self::B::T}";
}
static method main() → void {
  exp::Expect::equals("${const self::B::•<core::String>()}", "String");
}
