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 •() → self::A
    : super core::Object::•()
    ;
}
class B<T extends core::Object = dynamic> extends core::Object {
  constructor •(self::B::T x) → self::B<self::B::T>
    : super core::Object::•()
    ;
}
static field self::A t1 = let final self::A #t1 = new self::A::•() in let final dynamic #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 {}
