Files
swift-mirror/validation-test/ParseableInterface/broken-optionset.swiftinterface
Alex Hoppen 66104395d7 [Sema/SourceKit] Emit same diagnostics for missing protocol requirements on the command line and in SourceKit
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
2024-08-07 14:01:30 -07:00

34 lines
1.6 KiB
Plaintext

// swift-interface-format-version: 1.0
// swift-compiler-version: Swift version 5.0
// swift-module-flags:
// RUN: %empty-directory(%t)
// RUN: not %target-swift-frontend -typecheck-module-from-interface -module-name Broken %s 2>%t/interface-verification-errors.txt
// RUN: %FileCheck %s < %t/interface-verification-errors.txt
import Swift
// This type is meant to shadow the name of the module, creating an ambiguity.
public struct Broken {}
public struct BrokenOptions : Swift.OptionSet {
public let rawValue: Swift.Int
public static let none: Broken.BrokenOptions
public static let anOption: Broken.BrokenOptions
public init(rawValue: Swift.Int)
public typealias ArrayLiteralElement = Broken.BrokenOptions
public typealias Element = Broken.BrokenOptions
public typealias RawValue = Swift.Int
}
// CHECK: error: 'BrokenOptions' is not a member type of struct 'Broken.Broken'
// CHECK: error: 'BrokenOptions' is not a member type of struct 'Broken.Broken'
// CHECK: error: 'BrokenOptions' is not a member type of struct 'Broken.Broken'
// CHECK: error: 'BrokenOptions' is not a member type of struct 'Broken.Broken'
// CHECK: error: type 'BrokenOptions' does not conform to protocol 'OptionSet'
// CHECK: error: type 'BrokenOptions' does not conform to protocol 'ExpressibleByArrayLiteral'
// CHECK: note: protocol requires nested type 'Element'
// CHECK: note: protocol requires nested type 'ArrayLiteralElement'
// CHECK: error: failed to verify module interface of 'Broken' due to the errors above; the textual interface may be broken by project issues, differences between compilers