swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.31k stars 10.34k forks source link

[SR-764] swiftc calls default initializers "synthesized initializers" #43376

Open swift-ci opened 8 years ago

swift-ci commented 8 years ago
Previous ID SR-764
Radar None
Original Reporter jaybuff (JIRA User)
Type Bug
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | Compiler | |Labels | Bug, DiagnosticsQoI | |Assignee | None | |Priority | Medium | md5: 1956d3a3ee2e5ca9643b40e9f5d947b5

Issue Description:

$ cat Circle.swift
class Circle {
    var radius: Int
}

$ swiftc Circle.swift
Circle.swift:1:7: error: class 'Circle' has no initializers
class Circle {
      ^
Circle.swift:2:9: note: stored property 'radius' without initial value prevents synthesized initializers
    var radius: Int
        ^
                    = 0

Note that the error refers to "synthesized initializers" The canonical swift book refers to these as "Default Initializers"

Either the book or the compiler error message should be changed to consistently call these the same thing.

belkadan commented 8 years ago

"Synthesized initializers" covers more than just the default initializer; it also would include any designated initializers inherited from a parent. I suppose we could special-case the diagnostic for each situation, though.

swift-ci commented 8 years ago

Comment by Jay Buffington (JIRA)

When developers new to swift are encountered with this error the first instinct is to likely look up the term "synthesized initializers" in the book (or google it- which would hopefully direct them to the book). However, the book makes no mention of the phrase.