class A {}
class B extends A {}
class C<T extends A> {
  ---- unknown chunk starts ----
late
---- unknown chunk ends ----
  T _field;
  foo(T x) {}
}
class D extends C<B> {}
class Foo extends Object with C<B> {}
main() {}
