library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
// class Dupe {}
//       ^^^^
// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
// class Dupe {}
//       ^^^^
//
// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: 'Dupe.a' can't be used as a type because 'Dupe' doesn't refer to an import prefix.
//   Dupe.a b;
//   ^^^^^^
//
// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
// import 'duplicated_bad_prefix_lib2.dart' as dupe;
//                                             ^
//
// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: 'Dupe.a' isn't a type.
//   Dupe.a b;
//   ^^^^^^
//
import self as self;
import "dart:core" as core;

import "org-dartlang-testcase:///duplicated_bad_prefix_lib1.dart" as dupe;
import "org-dartlang-testcase:///duplicated_bad_prefix_lib2.dart" as dupe;

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

library;
import self as self2;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self2::C
    : super core::Object::•()
    ;
}

library;
import self as self3;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self3::C
    : super core::Object::•()
    ;
}
