B1 f1() => throw 42;

class A1 {
  A1(this.foo);
  var foo = f1();
}

class A2 {
  A2(this.foo);
  var foo = B2.new;
}

class A3 {
  A3();
  A3.initializeFoo(this.foo);
  var foo = C3.new;
}

class B1 extends A1 {
  B1(super.foo) : super();
}

class B2 extends A2 {
  B2(super.foo) : super();
}

class B3 extends A3 {
  B3(this.bar) : super();
  var bar = A3.initializeFoo;
}

class C3 extends B3 {
  C3(super.bar) : super();
}

main() {}
