//
// Problems in component:
//
// pkg/front_end/testcases/general/error_locations/error_location_01_lib2.dart:8:9: Error: Constant evaluation error:
//   const Foo(0);
//         ^
// pkg/front_end/testcases/general/error_locations/error_location_01_lib1.dart:6:31: Context: This assertion failed.
//   const Foo(int i) : assert(i > 0);
//                               ^
//
library;
import self as self;
import "error_location_01_lib1.dart" as err;
import "error_location_01_lib2.dart" as err2;

import "org-dartlang-testcase:///error_location_01_lib1.dart";
import "org-dartlang-testcase:///error_location_01_lib2.dart";

static method main() → dynamic {
  err::foo();
  err2::bar();
}

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

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

library;
import self as err2;

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

static method bar() → dynamic {
  invalid-expression "This assertion failed.";
}
