diff --git a/Tests/RegexBuilderTests/RegexDSLTests.swift b/Tests/RegexBuilderTests/RegexDSLTests.swift index 0e529368a..5e85ad26c 100644 --- a/Tests/RegexBuilderTests/RegexDSLTests.swift +++ b/Tests/RegexBuilderTests/RegexDSLTests.swift @@ -1099,15 +1099,26 @@ class RegexDSLTests: XCTestCase { } let _: (Substring, Substring, Int, Double?).Type = type(of: regex3).RegexOutput.self - - let regex4 = Regex { + + // FIXME: Remove explicit type and `subregex1` and `subregex2` when type checker regression is fixed + let subregex1: Regex<(Substring, Substring?)> = Regex { + ZeroOrMore(Capture("d")) + } + let subregex2: Regex<( + Substring, Substring, Substring, Substring? + )> = Regex { + Capture(OneOrMore("b")) + Capture(ZeroOrMore("c")) + subregex1 + Optionally("e") + } + let regex4: Regex<( + Substring, Substring, Substring, Substring, Substring? + )> = Regex { OneOrMore("a") Capture { OneOrMore { - Capture(OneOrMore("b")) - Capture(ZeroOrMore("c")) - ZeroOrMore(Capture("d")) - Optionally("e") + subregex2 } } }