@@ -103,6 +103,7 @@ func assertNoDiagnostics(
103
103
final class DiagnosticVerifier {
104
104
fileprivate struct Expectation {
105
105
let message : Diagnostic . Message
106
+ let alternativeMessage : Diagnostic . Message ?
106
107
let file : StaticString
107
108
let line : UInt
108
109
}
@@ -143,6 +144,10 @@ final class DiagnosticVerifier {
143
144
if diag. matches ( expectation. message) {
144
145
self . expected. remove ( at: i)
145
146
return
147
+ } else if let alternativeExpectedMessage = expectation. alternativeMessage,
148
+ diag. matches ( alternativeExpectedMessage) {
149
+ self . expected. remove ( at: i)
150
+ return
146
151
}
147
152
}
148
153
@@ -156,6 +161,7 @@ final class DiagnosticVerifier {
156
161
/// is emitted by then, a test assertion will fail.
157
162
func expect(
158
163
_ message: Diagnostic . Message ,
164
+ alternativeMessage: Diagnostic . Message ? = nil ,
159
165
repetitions: Int = 1 ,
160
166
file: StaticString = #file, line: UInt = #line
161
167
) {
@@ -168,7 +174,9 @@ final class DiagnosticVerifier {
168
174
if remaining < 1 { return }
169
175
}
170
176
171
- let expectation = Expectation ( message: message, file: file, line: line)
177
+ let expectation = Expectation ( message: message,
178
+ alternativeMessage: alternativeMessage,
179
+ file: file, line: line)
172
180
self . expected. append ( contentsOf: repeatElement ( expectation, count: remaining) )
173
181
}
174
182
}
0 commit comments