class _Closure1 {
  void Function() get call => () {};
}

class _Closure2 {
  _Closure2(this.call);
  final void Function() call;
}

late _Closure1 closure1;
late _Closure2 closure2;
main() {}
test(_Closure1 foo, _Closure2 bar) {}
var field1 = closure1();
var field2 = closure2();
