// @dart = 2.14
import 'unresolved_constructor_invocation.dart' as resolved_prefix;

class Class extends Super {
  Class.constructor1() : super();
  Class.constructor2() : super.unresolved();
  Class.constructor3() : this();
  Class.constructor4() : this.unresolved();
}

class ResolvedClass<T> {
  ResolvedClass.named();
}

class Super {
  Super.named();
}

main() {}
test() {}
