var result;
int topLevelMethod() => 1;
int topLevelMethod() => 2;
int get topLevelGetter => 1;
int get topLevelGetter => 2;
void set topLevelSetter(value) {}
void set topLevelSetter(value) {}
int topLevelField = 1;
int topLevelField = 2;
int topLevelFieldAndSetter1 = 1;
void set topLevelFieldAndSetter1(int value) {}
void set topLevelFieldAndSetter2(int value) {}
int topLevelFieldAndSetter2 = 1;
late final int topLevelLateFinalFieldAndSetter1;
void set topLevelLateFinalFieldAndSetter1(int value) {}
void set topLevelLateFinalFieldAndSetter2(int value) {}
late final int topLevelLateFinalFieldAndSetter2;
final int topLevelDuplicateFieldAndSetter = 1;
final int topLevelDuplicateFieldAndSetter = 2;
void set topLevelDuplicateFieldAndSetter(int value) {}
final int topLevelFieldAndDuplicateSetter = 1;
void set topLevelFieldAndDuplicateSetter(int value) {}
void set topLevelFieldAndDuplicateSetter(int value) {}
final int topLevelDuplicateFieldAndDuplicateSetter = 1;
final int topLevelDuplicateFieldAndDuplicateSetter = 2;
void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
int topLevelMethodAndSetter1() => 1;
void set topLevelMethodAndSetter1(int value) {}
void set topLevelMethodAndSetter2(int value) {}
int topLevelMethodAndSetter2() => 1;
test() {}
main() {}
expect(expected, actual) {}
throws(dynamic Function() f) {}
