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

class A extends core::Object /*hasConstConstructor*/  {
  const constructor •(core::int x) → self::A
    : super core::Object::•()
    ;
  static factory redir(core::int x) → self::A /* redirection-target: self::A::• */
    return new self::A::•(x);
}
@/*original=self::A::redir*/ const self::A::•(1)
static method foo(core::String y) → dynamic
  ;
static method main() → dynamic
  ;


Extra constant evaluation status:
Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_2.dart:10:2 -> InstanceConstant(const A{})
Extra constant evaluation: evaluated: 3, effectively constant: 1
