library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/issue43276.dart:6:14: Error: The parameter 'i' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
//   C.gen({int i}); // error
//              ^
//
// pkg/front_end/testcases/nnbd/issue43276.dart:8:23: Error: The parameter 'i' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
//   factory C.fact({int i}) /* error */ {
//                       ^
//
import self as self;
import "dart:core" as core;

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


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