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

typedef TA = self::A;
class A extends core::Object /*hasConstConstructor*/  {
  const constructor •() → self::A
    : super core::Object::•()
    ;
  static factory redir() → self::A /* redirection-target: self::A::• */
    return new self::A::•();
}
static const field core::List<self::A> test1 = #C2;
static const field core::List<self::A> test2 = #C2;
static const field core::List<self::A> test3 = #C2;

constants  {
  #C1 = self::A {}
  #C2 = <self::A>[#C1]
}


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