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

class A extends core::Object /*hasConstConstructor*/  {
  static final field dynamic _redirecting# = <dynamic>[self::A::redir]/*isLegacy*/;
  const constructor •(core::int x, {core::String? y = null}) → self::A
    : super core::Object::•()
    ;
  static factory redir(core::int x, {core::String? y = null}) → self::A
    return new self::A::•(x, y: y);
}
static method test1() → dynamic
  ;
static method test2() → dynamic
  ;
static method main() → dynamic
  ;


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