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

class Foo extends core::Object /*hasConstConstructor*/  {
  const constructor •(core::List<core::String> l) → self::Foo
    : super core::Object::•()
    ;
}
abstract class Bar extends core::Object {
  @#C1
  field dynamic x = null;
  @#C1
  constructor •() → self::Bar
    : super core::Object::•()
    ;
  @#C1
  abstract method f() → void;
}
static method main() → dynamic {}

constants  {
  #C1 = self::Foo {}
}


Constructor coverage from constants:
org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:
- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:9:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
