class Class1 {
  int field;
  Class1(this.field);
  int method(double o) => 0;
  static int staticField = 42;
  static int staticMethod(double o) => 0;
}

int topLevelField = 42;

int topLevelMethod(double o) => 0;

class Class2<T> {
  T field;
  Class2(this.field);
  int call() => 42;
}

const String string = 'foo';

const int stringLength = string.length;

const dynamic dynamicString = 'foo';

const int dynamicStringLength = dynamicString.length;

test<T1 extends Function, T2 extends int Function()>(
    Class1 nonNullableClass1,
    Class1? nullableClass1,
    dynamic dyn,
    Never never,
    Class2<String> nonNullableClass2,
    Class2<String>? nullableClass2,
    Function nonNullableFunction,
    Function? nullableFunction,
    int Function() nonNullableFunctionType,
    int Function()? nullableFunctionType,
    T1 nonNullableTypeVariable1,
    T1? nullableTypeVariable1,
    T2 nonNullableTypeVariable2,
    T2? nullableTypeVariable2) {}

main() {}
