再現できた。 open class NSValue2 {} protocol Factory {} extension Factory { init(factory: () -> Self) { self = factory() } } extension NSValue2: Factory {} open class NSNumber2: NSValue2 { private override init() {} private convenience init(private: Int) { self.init(factory: { NSNumber2() }) } public convenience init(init0: Int) { self.init(private: init0) } } open class NSDecimalNumber2: NSNumber2 {}
これでモジュール外の NSDecimalNumber2(init0:0)
がビルドエラー error: 'NSDecimalNumber2' cannot be constructed because it has no accessible initializers
になる。