library;
//
// Problems in library:
//
// pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters.dart:13:9: Error: 'foo' is imported from both 'pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters_lib1.dart' and 'pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters_lib2.dart'.
//   print(foo);
//         ^^^
//
import self as self;
import "dart:core" as core;

import "org-dartlang-testcase:///import_conflicting_getters_lib1.dart";
import "org-dartlang-testcase:///import_conflicting_getters_lib2.dart";

static method main() → dynamic {}
static method errors() → dynamic {
  core::print(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters.dart:13:9: Error: 'foo' is imported from both 'pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters_lib1.dart' and 'pkg/front_end/testcases/general_nnbd_opt_out/import_conflicting_getters_lib2.dart'.
  print(foo);
        ^^^");
}

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

static get foo() → core::int*
  return 42;

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

static get foo() → core::int*
  return 87;
