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

class C extends core::Object {
  final field dynamic n;
  static final field dynamic _redirecting# = <dynamic>[self::C::•]/*isLegacy*/;
  static factory •(dynamic n) → self::C
    return new self::D::•(n);
}
class D extends core::Object implements self::C {
  final field dynamic n;
  constructor •(dynamic n) → self::D
    ;
}
static method main() → dynamic
  ;


Extra constant evaluation status:
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///issue42844_2.dart:5:7 -> ConstructorTearOffConstant(C.)
Extra constant evaluation: evaluated: 4, effectively constant: 1
