library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:4:6: Error: A file that's a part of a library can't have parts itself.
// Try moving the 'part' declaration to the containing library.
// part 'having_part_with_parts_and_annotation_lib2.dart';
//      ^
// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
//
// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:6:6: Error: A file that's a part of a library can't have parts itself.
// Try moving the 'part' declaration to the containing library.
// part 'having_part_with_parts_and_annotation_lib2.dart';
//      ^
// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
//
import self as self;
import "dart:core" as core;

part having_part_with_parts_and_annotation_lib1.dart;
static const field core::int* Foo = 42;
static const field core::int* Bar = 43 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
static const field core::int* Baz = 44 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
static method fromMain() → void
  ;
static method main() → dynamic
  ;
static method /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void
  ;
