@@ -103,6 +103,7 @@ func assertNoDiagnostics(
103103final class DiagnosticVerifier {
104104 fileprivate struct Expectation {
105105 let message : Diagnostic . Message
106+ let alternativeMessage : Diagnostic . Message ?
106107 let file : StaticString
107108 let line : UInt
108109 }
@@ -143,6 +144,10 @@ final class DiagnosticVerifier {
143144 if diag. matches ( expectation. message) {
144145 self . expected. remove ( at: i)
145146 return
147+ } else if let alternativeExpectedMessage = expectation. alternativeMessage,
148+ diag. matches ( alternativeExpectedMessage) {
149+ self . expected. remove ( at: i)
150+ return
146151 }
147152 }
148153
@@ -156,6 +161,7 @@ final class DiagnosticVerifier {
156161 /// is emitted by then, a test assertion will fail.
157162 func expect(
158163 _ message: Diagnostic . Message ,
164+ alternativeMessage: Diagnostic . Message ? = nil ,
159165 repetitions: Int = 1 ,
160166 file: StaticString = #file, line: UInt = #line
161167 ) {
@@ -168,7 +174,9 @@ final class DiagnosticVerifier {
168174 if remaining < 1 { return }
169175 }
170176
171- let expectation = Expectation ( message: message, file: file, line: line)
177+ let expectation = Expectation ( message: message,
178+ alternativeMessage: alternativeMessage,
179+ file: file, line: line)
172180 self . expected. append ( contentsOf: repeatElement ( expectation, count: remaining) )
173181 }
174182 }
0 commit comments