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

class Class1 extends core::Object {
  field core::int field;
  static final field dynamic _redirecting# = <dynamic>[self::Class1::•]/*isLegacy*/;
  constructor _() → self::Class1
    ;
  static factory •() → self::Class1
    return new self::Class1::_();
  get getter() → core::int
    ;
}
class Class2 extends self::Class1 {
  final field self::Class2 _c2;
  constructor •(self::Class2 _c2) → self::Class2
    ;
  method method({dynamic a}) → dynamic
    ;
  get call() → core::int
    ;
}
static method main() → dynamic
  ;


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