library;
import self as self;
import "dart:core" as core;

class X extends core::Object {
  synthetic constructor •() → self::X
    : super core::Object::•()
    ;
}
class Foo<T extends self::X = dynamic> extends core::Object {
  field self::Foo::T x;
  constructor fromX(self::X _init) → self::Foo<self::Foo::T>
    : this self::Foo::_internal(x: _init)
    ;
  constructor fromT(self::Foo::T _init) → self::Foo<self::Foo::T>
    : this self::Foo::_internal(x: _init)
    ;
  constructor _internal({self::Foo::T x = null}) → self::Foo<self::Foo::T>
    : self::Foo::x = x, super core::Object::•()
    ;
}
static method main() → void {}
