library /*isNonNullableByDefault*/;
import self as self;

import "org-dartlang-testcase:///error_location_02_lib1.dart";
import "org-dartlang-testcase:///error_location_02_lib2.dart";
import "org-dartlang-testcase:///error_location_02_lib3.dart";

static method main() → dynamic
  ;

library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;

class Foo extends core::Object /*hasConstConstructor*/  {
  const constructor •(core::int i) → self2::Foo
    : assert(i.{core::num::>}(0){(core::num) → core::bool}), super core::Object::•()
    ;
}
static method foo() → dynamic
  ;

library /*isNonNullableByDefault*/;
import self as self3;
import "error_location_02_lib1.dart" as self2;

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

static const field self2::Foo fooField = const self2::Foo::•(0);

library /*isNonNullableByDefault*/;
import self as self4;
import "error_location_02_lib1.dart" as self2;
import "error_location_02_lib2.dart" as self3;

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

static const field self2::Foo fooField2 = self3::fooField;
