part "duplicated_declarations_part.dart"; import 'duplicated_declarations_lib.dart' as Typedef; import 'duplicated_declarations_lib.dart' as Typedef;
typedef Typedef = void Function();
typedef Typedef = Object Function();
import 'duplicated_declarations_lib.dart' as Typedef;
typedef void OldTypedef();
typedef Object OldTypedef();
var field = "1st";
var field = "2nd";
main() { }
main() { }
foo() { }
class C {
  C(a);
  C(a, b);
  var field = "1st";
  var field = "2nd";
  m() { }
  m() { }
  static s() { }
  static s() { }
  static f() => s;
}
class Sub extends C {
  Sub() : super(null);
  m() => super.m();
}
class C {
  C._();
}
enum Enum { Enum, a, a, b, }
enum Enum { a, b, c, }
enum AnotherEnum { a, b, c, _name, index, toString, values, }
useAnotherEnum() { }
