Commits

Chris Lattner committed c2b19659bf8
significantly improve the QoI of DI's diagnostics when emitting errors due to "return nil" in a failable initializer. Previously, it would always just say "properties of a class instance must be initialized before returning nil". Now, in designated inits, it adds to that message with notes for each member that is not initialized but must be. It also adds a note saying that super.init() must be called if that is the problem. In convenience inits, it says: "failable convenience initializer must delegate to self.init() before returning nil" For example, in: class B : A { var x : Int override init?() { return nil } We now produce: t.swift:13:15: error: all stored properties of a class instance must be initialized before returning nil from an initializer t.swift:11:7: note: 'self.x' not initialized t.swift:13:15: note: super.init must be called before returning nil I don't see any radars about this, but someone was confused on the dev forums: https://devforums.apple.com/message/1113604#1113604 Swift SVN r26166