@@ -176,12 +176,25 @@ public class EvaluateTests: XCTestCase {
176176 assertIfConfig ( " swift(>=5.5) " , . active)
177177 assertIfConfig ( " swift(<6) " , . active)
178178 assertIfConfig ( " swift(>=6) " , . unparsed)
179+ assertIfConfig (
180+ " swift(>=...) " ,
181+ . unparsed,
182+ diagnostics: [
183+ DiagnosticSpec (
184+ message: " 'swift' version check has invalid version '' " ,
185+ line: 1 ,
186+ column: 9
187+ )
188+ ]
189+ )
179190 assertIfConfig ( " compiler(>=5.8) " , . active)
180191 assertIfConfig ( " compiler(>=5.9) " , . active)
181192 assertIfConfig ( " compiler(>=5.10) " , . unparsed)
182193 assertIfConfig ( #"_compiler_version("5009.*.1")"# , . active)
183194 assertIfConfig ( #"_compiler_version("5009.*.3.2.3")"# , . unparsed)
184195 assertIfConfig ( #"_compiler_version("5010.*.0")"# , . unparsed)
196+ assertIfConfig ( " _compiler_version(>=5.8) " , . active)
197+ assertIfConfig ( " _compiler_version(>=12.0) " , . unparsed)
185198 assertIfConfig ( " compiler(>=5.10) && 3.14159 " , . unparsed)
186199 assertIfConfig (
187200 " compiler(>=5.10) || 3.14159 " ,
@@ -206,6 +219,17 @@ public class EvaluateTests: XCTestCase {
206219 )
207220 ]
208221 )
222+ assertIfConfig (
223+ #"_compiler_version("...")"# ,
224+ . unparsed,
225+ diagnostics: [
226+ DiagnosticSpec (
227+ message: " found empty version component " ,
228+ line: 1 ,
229+ column: 20
230+ )
231+ ]
232+ )
209233 }
210234
211235 func testCanImport( ) throws {
@@ -269,7 +293,7 @@ fileprivate func assertIfConfig(
269293 // Evaluate the condition to check the state.
270294 let actualDiagnostics : [ Diagnostic ]
271295 let actualState : IfConfigRegionState
272- ( actualState, actualDiagnostics) = IfConfigRegionState . evaluating ( condition, in: configuration)
296+ ( actualState, _ , actualDiagnostics) = IfConfigRegionState . evaluating ( condition, in: configuration)
273297 XCTAssertEqual ( actualState, expectedState, file: file, line: line)
274298
275299 // Check the diagnostics.
0 commit comments