@@ -1496,7 +1496,15 @@ private final class TokenStreamCreator: SyntaxVisitor {
14961496
14971497 override func visit( _ node: IfConfigDeclSyntax ) -> SyntaxVisitorContinueKind {
14981498 // there has to be a break after an #endif
1499- after ( node. poundEndif, tokens: . break( . same, size: 0 ) )
1499+ let newlines : NewlineBehavior
1500+ if node. parent? . is ( AttributeListSyntax . self) == true {
1501+ newlines = . elective
1502+ } else if isNestedInPostfixIfConfig ( node: Syntax ( node) ) {
1503+ newlines = config. respectsExistingLineBreaks ? . elective : . soft
1504+ } else {
1505+ newlines = . soft
1506+ }
1507+ after ( node. poundEndif, tokens: . break( . same, size: 0 , newlines: newlines) )
15001508 return . visitChildren
15011509 }
15021510
@@ -4317,10 +4325,9 @@ private final class TokenStreamCreator: SyntaxVisitor {
43174325 after ( postfixIfExpr. lastToken ( viewMode: . sourceAccurate) , tokens: . contextualBreakingEnd)
43184326
43194327 for clause in postfixIfExpr. config. clauses {
4320- before ( clause. poundKeyword, tokens: . break( . contextual, size: 0 ) )
4328+ before ( clause. poundKeyword, tokens: . break( . contextual, size: 0 , newlines : . soft ) )
43214329 }
4322- before ( postfixIfExpr. config. poundEndif, tokens: . break( . contextual, size: 0 ) )
4323- after ( postfixIfExpr. config. poundEndif, tokens: . break( . same, size: 0 ) )
4330+ before ( postfixIfExpr. config. poundEndif, tokens: . break( . contextual, size: 0 , newlines: . soft) )
43244331
43254332 return insertContextualBreaks ( base, isTopLevel: false )
43264333 } else if let callingExpr = expr. asProtocol ( CallingExprSyntaxProtocol . self) {
0 commit comments