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

class A extends core::Object {
  field self::B<core::int> b = null;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class B<T extends core::Object = dynamic> extends core::Object {
  constructor •(self::B::T x) → void
    : super core::Object::•()
    ;
}
static field self::A t1 = let final self::A #t1 = new self::A::•() in let final self::B<core::int> #t2 = #t1.{self::A::b} = new self::B::•<core::int>(1) in #t1;
static field core::List<self::B<core::int>> t2 = <self::B<core::int>>[new self::B::•<core::int>(2)];
static method main() → dynamic {}
