main = main::main;
library from "org-dartlang-test:///lib.dart" as lib {

  class Foo extends dart.core::Object /*hasConstConstructor*/  {
    const constructor •(dart.core::int i) → lib::Foo
      : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
      ;
  }
  static method foo() → dynamic {
    new lib::Foo::•(0);
  }
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
//
// Problems in library:
//
// org-dartlang-test:///lib2.dart:3:9: Error: Constant evaluation error:
//   const Foo(0);
//         ^
// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
//   const Foo(int i) : assert(i > 0);
//                               ^
//

  import "org-dartlang-test:///lib.dart";

  static method bar() → dynamic {
    invalid-expression "This assertion failed.";
  }
}
library from "org-dartlang-test:///main.dart" as main {

  import "org-dartlang-test:///lib.dart";
  import "org-dartlang-test:///lib2.dart";

  static method main() → dynamic {
    lib::foo();
  }
}


Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
- Foo. (from org-dartlang-test:///lib.dart:2:9)

