forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbroken-optionset.swiftinterface
33 lines (27 loc) · 1.66 KB
/
broken-optionset.swiftinterface
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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'; add nested type 'Element' for conformance
// CHECK: note: protocol requires nested type 'ArrayLiteralElement'; add nested type 'ArrayLiteralElement' for conformance
// 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