import 'dart:async';

FutureOr<FutureOr> topLevelField3;
FutureOr<int?> topLevelField2;
FutureOr topLevelField1;

class Class1 {
  FutureOr<FutureOr> instanceField3;
  FutureOr<int?> instanceField2;
  FutureOr instanceField1;
  static FutureOr<FutureOr> staticField3;
  static FutureOr<int?> staticField2;
  static FutureOr staticField1;
  static void staticMethod1(
      [FutureOr parameter1,
      FutureOr<int?> parameter2,
      FutureOr<FutureOr> parameter3]) {}
  static void staticMethod2(
      {FutureOr parameter1,
      FutureOr<int?> parameter2,
      FutureOr<FutureOr> parameter3}) {}
  void instanceMethod1(
      [FutureOr parameter1,
      FutureOr<int?> parameter2,
      FutureOr<FutureOr> parameter3]) {}
  void instanceMethod2(
      {FutureOr parameter1,
      FutureOr<int?> parameter2,
      FutureOr<FutureOr> parameter3}) {}
}

class Class2 {
  Class2.constructor1(
      this.instanceField1, this.instanceField2, this.instanceField3);
  Class2.constructor2();
  FutureOr<FutureOr> instanceField3;
  FutureOr<int?> instanceField2;
  FutureOr instanceField1;
}

main() {}
void toplevelMethod1(
    [FutureOr parameter1,
    FutureOr<int?> parameter2,
    FutureOr<FutureOr> parameter3]) {}
void toplevelMethod2(
    {FutureOr parameter1,
    FutureOr<int?> parameter2,
    FutureOr<FutureOr> parameter3}) {}
