Skip to content

Commit 41da025

Browse files
authored
Merge pull request #1048 from rintaro/remove-rawsyntax-modifiers
Remove XXXRawSyntax.withYYY() methods
2 parents e44e18c + af16392 commit 41da025

File tree

4 files changed

+33
-5009
lines changed

4 files changed

+33
-5009
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,13 @@ extension Parser {
167167
arena: parser.arena)
168168
} addSemicolonIfNeeded: { lastElement, newItemAtStartOfLine, parser in
169169
if lastElement.semicolon == nil && !newItemAtStartOfLine {
170-
return lastElement.withSemicolon(parser.missingToken(.semicolon, text: nil), arena: parser.arena)
170+
return RawMemberDeclListItemSyntax(
171+
lastElement.unexpectedBeforeDecl,
172+
decl: lastElement.decl,
173+
lastElement.unexpectedBetweenDeclAndSemicolon,
174+
semicolon: parser.missingToken(.semicolon, text: nil),
175+
lastElement.unexpectedAfterSemicolon,
176+
arena: parser.arena)
171177
} else {
172178
return nil
173179
}
@@ -681,7 +687,14 @@ extension Parser {
681687
break
682688
}
683689
if let lastItem = elements.last, lastItem.semicolon == nil && !newItemAtStartOfLine {
684-
elements[elements.count - 1] = lastItem.withSemicolon(missingToken(.semicolon, text: nil), arena: self.arena)
690+
elements[elements.count - 1] = RawMemberDeclListItemSyntax(
691+
lastItem.unexpectedBeforeDecl,
692+
decl: lastItem.decl,
693+
lastItem.unexpectedBetweenDeclAndSemicolon,
694+
semicolon: self.missingToken(.semicolon, text: nil),
695+
lastItem.unexpectedAfterSemicolon,
696+
arena: self.arena)
697+
685698
}
686699
elements.append(newElement)
687700
}

Sources/SwiftParser/TopLevel.swift

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,15 @@ extension Parser {
6868
break
6969
}
7070
if let lastItem = elements.last, lastItem.semicolon == nil && !newItemAtStartOfLine {
71-
elements[elements.count - 1] = lastItem.withSemicolon(missingToken(.semicolon, text: nil), arena: self.arena)
71+
elements[elements.count - 1] = RawCodeBlockItemSyntax(
72+
lastItem.unexpectedBeforeItem,
73+
item: .init(lastItem.item)!,
74+
lastItem.unexpectedBetweenItemAndSemicolon,
75+
semicolon: self.missingToken(.semicolon, text: nil),
76+
lastItem.unexpectedBetweenSemicolonAndErrorTokens,
77+
errorTokens: lastItem.errorTokens,
78+
lastItem.unexpectedAfterErrorTokens,
79+
arena: self.arena)
7280
}
7381
elements.append(newElement)
7482
}
@@ -195,7 +203,15 @@ extension Parser {
195203
$0.parseCodeBlockItem()
196204
} addSemicolonIfNeeded: { lastElement, newItemAtStartOfLine, parser in
197205
if lastElement.semicolon == nil && !newItemAtStartOfLine {
198-
return lastElement.withSemicolon(parser.missingToken(.semicolon, text: nil), arena: parser.arena)
206+
return RawCodeBlockItemSyntax(
207+
lastElement.unexpectedBeforeItem,
208+
item: .init(lastElement.item)!,
209+
lastElement.unexpectedBetweenItemAndSemicolon,
210+
semicolon: parser.missingToken(.semicolon, text: nil),
211+
lastElement.unexpectedBetweenSemicolonAndErrorTokens,
212+
errorTokens: lastElement.errorTokens,
213+
lastElement.unexpectedAfterErrorTokens,
214+
arena: parser.arena)
199215
} else {
200216
return nil
201217
}

Sources/SwiftSyntax/Raw/RawSyntaxNodes.swift.gyb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -157,13 +157,6 @@ public struct Raw${node.name}: Raw${node.name if node.is_base() else node.base_t
157157
layoutView.children[${idx}]${iuo_mark}
158158
% else:
159159
layoutView.children[${idx}].map(Raw${child.type_name}.init(raw:))${iuo_mark}
160-
% end
161-
}
162-
public func with${child.name}(_ ${child.swift_name}: Raw${child.type_name + optional_mark}, arena: SyntaxArena) -> Raw${node.name} {
163-
% if child.is_optional:
164-
return layoutView.replacingChild(at: ${idx}, with: ${child.swift_name}.map(RawSyntax.init), arena: arena).as(Raw${node.name}.self)!
165-
% else:
166-
return layoutView.replacingChild(at: ${idx}, with: RawSyntax(${child.swift_name}), arena: arena).as(Raw${node.name}.self)!
167160
% end
168161
}
169162
% end

0 commit comments

Comments
 (0)