Skip to content

Commit 19445c0

Browse files
committed
Enable the >=version syntax for #if _compiler_version
In addition to the string-literal form, this compilation conditional handles the same version check syntax as `#if swift` and `#if compiler`.
1 parent ec6b09f commit 19445c0

File tree

2 files changed

+3
-7
lines changed

2 files changed

+3
-7
lines changed

Sources/SwiftIfConfig/IfConfigEvaluation.swift

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -334,13 +334,7 @@ func evaluateIfConfig(
334334
let segment = stringLiteral.segments.first,
335335
case .stringSegment(let stringSegment) = segment
336336
else {
337-
return recordError(
338-
.requiresUnlabeledArgument(
339-
name: "_compiler_version",
340-
role: "version",
341-
syntax: ExprSyntax(call)
342-
)
343-
)
337+
return doVersionComparisonCheck(configuration.compilerVersion)
344338
}
345339

346340
let versionString = stringSegment.content.text

Tests/SwiftIfConfigTest/EvaluateTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ public class EvaluateTests: XCTestCase {
193193
assertIfConfig(#"_compiler_version("5009.*.1")"#, .active)
194194
assertIfConfig(#"_compiler_version("5009.*.3.2.3")"#, .unparsed)
195195
assertIfConfig(#"_compiler_version("5010.*.0")"#, .unparsed)
196+
assertIfConfig("_compiler_version(>=5.8)", .active)
197+
assertIfConfig("_compiler_version(>=12.0)", .unparsed)
196198
assertIfConfig("compiler(>=5.10) && 3.14159", .unparsed)
197199
assertIfConfig(
198200
"compiler(>=5.10) || 3.14159",

0 commit comments

Comments
 (0)