library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:8:5: Error: 'topLevelMethod' is already declared in this scope.
// int topLevelMethod() => 2;
//     ^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:7:5: Context: Previous declaration of 'topLevelMethod'.
// int topLevelMethod() => 1;
//     ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:11:9: Error: 'topLevelGetter' is already declared in this scope.
// int get topLevelGetter => 2;
//         ^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:10:9: Context: Previous declaration of 'topLevelGetter'.
// int get topLevelGetter => 1;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:17:10: Error: 'topLevelSetter' is already declared in this scope.
// void set topLevelSetter(value) {
//          ^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:13:10: Context: Previous declaration of 'topLevelSetter'.
// void set topLevelSetter(value) {
//          ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:22:5: Error: 'topLevelField' is already declared in this scope.
// int topLevelField = 2;
//     ^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:21:5: Context: Previous declaration of 'topLevelField'.
// int topLevelField = 1;
//     ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:47:11: Error: 'topLevelDuplicateFieldAndSetter' is already declared in this scope.
// final int topLevelDuplicateFieldAndSetter = 2;
//           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:46:11: Context: Previous declaration of 'topLevelDuplicateFieldAndSetter'.
// final int topLevelDuplicateFieldAndSetter = 1;
//           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:57:10: Error: 'topLevelFieldAndDuplicateSetter' is already declared in this scope.
// void set topLevelFieldAndDuplicateSetter(int value) {
//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:53:10: Context: Previous declaration of 'topLevelFieldAndDuplicateSetter'.
// void set topLevelFieldAndDuplicateSetter(int value) {
//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:62:11: Error: 'topLevelDuplicateFieldAndDuplicateSetter' is already declared in this scope.
// final int topLevelDuplicateFieldAndDuplicateSetter = 2;
//           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:61:11: Context: Previous declaration of 'topLevelDuplicateFieldAndDuplicateSetter'.
// final int topLevelDuplicateFieldAndDuplicateSetter = 1;
//           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:67:10: Error: 'topLevelDuplicateFieldAndDuplicateSetter' is already declared in this scope.
// void set topLevelDuplicateFieldAndDuplicateSetter(int value) {
//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:63:10: Context: Previous declaration of 'topLevelDuplicateFieldAndDuplicateSetter'.
// void set topLevelDuplicateFieldAndDuplicateSetter(int value) {
//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart: Error: 'topLevelSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart: Error: 'topLevelFieldAndDuplicateSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart: Error: 'topLevelDuplicateFieldAndDuplicateSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:25:10: Error: Conflicts with the implicit setter of the field 'topLevelFieldAndSetter1'.
// void set topLevelFieldAndSetter1(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:24:5: Error: Conflicts with setter 'topLevelFieldAndSetter1'.
// int topLevelFieldAndSetter1 = 1;
//     ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:29:10: Error: Conflicts with the implicit setter of the field 'topLevelFieldAndSetter2'.
// void set topLevelFieldAndSetter2(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:33:5: Error: Conflicts with setter 'topLevelFieldAndSetter2'.
// int topLevelFieldAndSetter2 = 1;
//     ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:36:10: Error: Conflicts with the implicit setter of the field 'topLevelLateFinalFieldAndSetter1'.
// void set topLevelLateFinalFieldAndSetter1(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:35:16: Error: Conflicts with setter 'topLevelLateFinalFieldAndSetter1'.
// late final int topLevelLateFinalFieldAndSetter1;
//                ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:40:10: Error: Conflicts with the implicit setter of the field 'topLevelLateFinalFieldAndSetter2'.
// void set topLevelLateFinalFieldAndSetter2(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:44:16: Error: Conflicts with setter 'topLevelLateFinalFieldAndSetter2'.
// late final int topLevelLateFinalFieldAndSetter2;
//                ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:72:10: Error: Conflicts with member 'topLevelMethodAndSetter1'.
// void set topLevelMethodAndSetter1(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:71:5: Error: Conflicts with setter 'topLevelMethodAndSetter1'.
// int topLevelMethodAndSetter1() => 1;
//     ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:76:10: Error: Conflicts with member 'topLevelMethodAndSetter2'.
// void set topLevelMethodAndSetter2(int value) {
//          ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:80:5: Error: Conflicts with setter 'topLevelMethodAndSetter2'.
// int topLevelMethodAndSetter2() => 1;
//     ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:82:13: Error: Can't use 'topLevelMethod' because it is declared more than once.
// var field = topLevelMethod;
//             ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:84:2: Error: Can't use 'topLevelMethod' because it is declared more than once.
// @topLevelMethod
//  ^
//
// pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:84:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
// @topLevelMethod
//  ^
//
import self as self;
import "dart:core" as core;

static field dynamic result;
static field core::int topLevelField;
static field core::int topLevelFieldAndSetter1;
static field core::int topLevelFieldAndSetter2;
late static final [setter] field core::int topLevelLateFinalFieldAndSetter1;
late static final [setter] field core::int topLevelLateFinalFieldAndSetter2;
static final field core::int topLevelDuplicateFieldAndSetter;
static final field core::int topLevelFieldAndDuplicateSetter;
static final field core::int topLevelDuplicateFieldAndDuplicateSetter;
static field invalid-type field;
static const field dynamic _exports# = "{\"topLevelSetter\":\"'topLevelSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.\",\"topLevelFieldAndDuplicateSetter\":\"'topLevelFieldAndDuplicateSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.\",\"topLevelDuplicateFieldAndDuplicateSetter\":\"'topLevelDuplicateFieldAndDuplicateSetter' is exported from both 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart' and 'pkg/front_end/testcases/nnbd/duplicates_toplevel.dart'.\"}" /*isLegacy*/;
static method topLevelMethod() → core::int
  ;
static get topLevelGetter() → core::int
  ;
static set topLevelSetter(dynamic value) → void
  ;
static set topLevelDuplicateFieldAndSetter(core::int value) → void
  ;
static set topLevelFieldAndDuplicateSetter(core::int value) → void
  ;
static set topLevelDuplicateFieldAndDuplicateSetter(core::int value) → void
  ;
static method topLevelMethodAndSetter1() → core::int
  ;
static set topLevelMethodAndSetter1(core::int value) → void
  ;
static set topLevelMethodAndSetter2(core::int value) → void
  ;
static method topLevelMethodAndSetter2() → core::int
  ;
@invalid-expression "pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:84:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@topLevelMethod
 ^" in invalid-expression "pkg/front_end/testcases/nnbd/duplicates_toplevel.dart:84:2: Error: Can't use 'topLevelMethod' because it is declared more than once.
@topLevelMethod
 ^"
static method test() → dynamic
  ;
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;
static method throws(() → dynamic f) → dynamic
  ;
