library;
import self as self;

import "org-dartlang-testcase:///issue_36647_lib1.dart";


library;
import self as self2;
import "issue_36647_lib2.dart" as iss;
additionalExports = (iss::xxx)
, iss::XXX)
, iss::extends)


export "org-dartlang-testcase:///issue_36647_lib2.dart";


library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:7: Error: A class declaration must have a body, even if it is empty.
// Try adding an empty body.
// class xxx xx XXX extends XXX {
//       ^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:14: Error: Expected ';' after this.
// class xxx xx XXX extends XXX {
//              ^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:18: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class xxx xx XXX extends XXX {
//                  ^^^^^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:18: Error: Expected an identifier, but got 'extends'.
// class xxx xx XXX extends XXX {
//                  ^^^^^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:18: Error: Expected ';' after this.
// class xxx xx XXX extends XXX {
//                  ^^^^^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:26: Error: A function declaration needs an explicit list of parameters.
// Try adding a parameter list to the function declaration.
// class xxx xx XXX extends XXX {
//                          ^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:26: Error: 'XXX' is already declared in this scope.
// class xxx xx XXX extends XXX {
//                          ^^^
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:14: Context: Previous declaration of 'XXX'.
// class xxx xx XXX extends XXX {
//              ^^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:11: Error: Type 'xx' not found.
// class xxx xx XXX extends XXX {
//           ^^
//
// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:11: Error: 'xx' isn't a type.
// class xxx xx XXX extends XXX {
//           ^^
//
import self as iss;
import "dart:core" as core;

class xxx extends core::Object {
  synthetic constructor •() → iss::xxx
    : super core::Object::•()
    ;
}
static field invalid-type XXX;
static field dynamic extends;
