Avatar
norio_nomura 8/29/2017 3:47 AM
今度こそ再現できたと思う。 import Foundation internal protocol _Factory { init(factory: () -> Self) } extension _Factory { init(factory: () -> Self) { self = factory() } } open class NSValue2: _Factory { internal init() {} } open class NSNumber2: NSValue2 { internal override init() { super.init() } public convenience init(value: Bool) { self.init(factory: { NSNumber2() }) } } open class NSDecimalNumber2: NSNumber2 { // override init() { super.init() } // この行を復元するとビルドが通る。 public init(decimal dcm: Decimal) { super.init() } } これでモジュール外の NSDecimalNumber2(value: true) がビルドエラー error: incorrect argument label in call (have 'value:', expected 'decimal:') になる。 (edited)