library;
//
// Problems in library:
//
// pkg/front_end/testcases/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
// class Dupe {}
//       ^^^^
// pkg/front_end/testcases/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
// class Dupe {}
//       ^^^^
//
// pkg/front_end/testcases/duplicated_bad_prefix.dart:13:3: Warning: Type 'Dupe.a' not found.
//   Dupe.a b;
//   ^^^^^^
//
// pkg/front_end/testcases/duplicated_bad_prefix.dart:6:45: Warning: 'C' is imported from both 'pkg/front_end/testcases/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/duplicated_bad_prefix_lib2.dart'.
// import 'duplicated_bad_prefix_lib2.dart' as dupe;
//                                             ^
//
import self as self;
import "dart:core" as core;

class Dupe#1 extends core::Object {
  synthetic constructor •() → self::Dupe#1
    ;
}
class Dupe extends core::Object {
  synthetic constructor •() → self::Dupe
    ;
}
class C extends core::Object {
  field invalid-type b;
  field invalid-type d;
  synthetic constructor •() → self::C
    ;
}
static method main() → dynamic
  ;
