@@ -66,7 +66,7 @@ extension Parser {
6666 /// into a syntax collection.
6767 @_spi ( RawSyntax)
6868 public mutating func parsePoundIfDirective< Element: RawSyntaxNodeProtocol > (
69- _ parseElement: ( inout Parser ) -> Element ? ,
69+ _ parseElement: ( _ parser : inout Parser , _ isFirstElement : Bool ) -> Element ? ,
7070 addSemicolonIfNeeded: ( _ lastElement: Element , _ newItemAtStartOfLine: Bool , _ parser: inout Parser ) -> Element ? = { _, _, _ in nil } ,
7171 syntax: ( inout Parser , [ Element ] ) -> RawIfConfigClauseSyntax . Elements ?
7272 ) -> RawIfConfigDeclSyntax {
@@ -83,7 +83,7 @@ extension Parser {
8383 do {
8484 var firstIteration = true
8585 var loopProgress = LoopProgressCondition ( )
86- while let poundIfHandle = self . canRecoverTo ( any: firstIteration ? [ . poundIfKeyword] : [ . poundIfKeyword , . poundElseifKeyword, . poundElseKeyword] ) ,
86+ while let poundIfHandle = self . canRecoverTo ( any: firstIteration ? [ . poundIfKeyword] : [ . poundElseifKeyword, . poundElseKeyword] ) ,
8787 loopProgress. evaluate ( self . currentToken)
8888 {
8989 let ( unexpectedBeforePoundIf, poundIf) = self . eat ( poundIfHandle)
@@ -104,7 +104,7 @@ extension Parser {
104104 var elementsProgress = LoopProgressCondition ( )
105105 while !self . at ( any: [ . eof, . poundElseKeyword, . poundElseifKeyword, . poundEndifKeyword] ) && elementsProgress. evaluate ( currentToken) {
106106 let newItemAtStartOfLine = self . currentToken. isAtStartOfLine
107- guard let element = parseElement ( & self ) , !element. isEmpty else {
107+ guard let element = parseElement ( & self , elements . isEmpty ) , !element. isEmpty else {
108108 break
109109 }
110110 if let lastElement = elements. last, let fixedUpLastItem = addSemicolonIfNeeded ( lastElement, newItemAtStartOfLine, & self ) {
0 commit comments