mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Some editors use diagnostics from SourceKit to replace build issues. This causes issues if the diagnostics from SourceKit are formatted differently than the build issues. Make sure they are rendered the same way, removing most uses of `DiagnosticsEditorMode`. To do so, always emit the `add stubs for conformance` note (which previously was only emitted in editor mode) and remove all `; add <something>` suffixes from notes that state which requirements are missing. rdar://129283608
51 lines
1.3 KiB
Swift
51 lines
1.3 KiB
Swift
// RUN: %target-typecheck-verify-swift -swift-version 4
|
|
|
|
protocol P1 {
|
|
static func `init`(_: Int) // expected-note {{protocol requires function 'init' with type '(Int) -> ()'}}
|
|
// expected-note@-1 {{did you mean 'init'?}}
|
|
}
|
|
|
|
struct S11 : P1 {
|
|
static func `init`(_: Int) {}
|
|
}
|
|
|
|
struct S12 : P1 { // expected-error {{type 'S12' does not conform to protocol 'P1'}} expected-note {{add stubs for conformance}}
|
|
init(_: Int) {}
|
|
}
|
|
|
|
protocol P2 {
|
|
init(_: Int) // expected-note {{protocol requires initializer 'init(_:)' with type 'Int'}}
|
|
}
|
|
|
|
struct S21 : P2 { // expected-error {{type 'S21' does not conform to protocol 'P2'}} expected-note {{add stubs for conformance}}
|
|
static func `init`(_: Int) {}
|
|
}
|
|
|
|
struct S22 : P2 {
|
|
init(_: Int) {}
|
|
}
|
|
|
|
struct S3 {
|
|
static func `init`() {}
|
|
|
|
init(x: Int) { // expected-note {{'init(x:)' declared here}}
|
|
self.init() // expected-error {{missing argument for parameter 'x' in call}}
|
|
}
|
|
}
|
|
|
|
_ = S11(0) // expected-error {{argument passed to call that takes no arguments}}
|
|
S11.init(0)
|
|
S11.`init`(0)
|
|
|
|
_ = S12(0)
|
|
_ = S12.init(0)
|
|
_ = S12.`init`(0) // expected-error {{type 'S12' has no member 'init'}}
|
|
|
|
_ = S21(0) // expected-error {{argument passed to call that takes no arguments}}
|
|
S21.init(0)
|
|
S21.`init`(0)
|
|
|
|
_ = S22(0)
|
|
_ = S22.init(0)
|
|
_ = S22.`init`(0) // expected-error {{type 'S22' has no member 'init'}}
|