import augment 'augment_super_lib.dart';
void topLevelMethod() {}
void topLevelMethodErrors() {}
List<int> get topLevelProperty => [42];
void set topLevelProperty(List<int> value) {}
List<int>? get nullableTopLevelProperty => [42];
void set nullableTopLevelProperty(List<int>? value) {}
class Class {
  void instanceMethod() {}
  void instanceMethodErrors() {}
  int get instanceProperty => 42;
  void set instanceProperty(int value) {}
  int? get nullableInstanceProperty => 42;
  void set nullableInstanceProperty(int? value) {}
}
main() {}
