@@ -22,8 +22,13 @@ extension Parser {
2222 public static func parse(
2323 source: String
2424 ) -> SourceFileSyntax {
25- var parser = Parser ( source)
26- return SourceFileSyntax . parse ( from: & parser)
25+ return withParser (
26+ source: source,
27+ maximumNestingLevel: nil ,
28+ parseTransition: nil ,
29+ swiftVersion: nil ,
30+ experimentalFeatures: [ ]
31+ ) { SourceFileSyntax . parse ( from: & $0) }
2732 }
2833
2934 /// A compiler interface that allows the enabling of experimental features.
@@ -33,8 +38,13 @@ extension Parser {
3338 swiftVersion: SwiftVersion ? = nil ,
3439 experimentalFeatures: ExperimentalFeatures
3540 ) -> SourceFileSyntax {
36- var parser = Parser ( source, swiftVersion: swiftVersion, experimentalFeatures: experimentalFeatures)
37- return SourceFileSyntax . parse ( from: & parser)
41+ return withParser (
42+ source: source,
43+ maximumNestingLevel: nil ,
44+ parseTransition: nil ,
45+ swiftVersion: swiftVersion,
46+ experimentalFeatures: experimentalFeatures
47+ ) { SourceFileSyntax . parse ( from: & $0) }
3848 }
3949
4050 /// Parse the source code in the given buffer as Swift source file. See
@@ -44,8 +54,13 @@ extension Parser {
4454 maximumNestingLevel: Int ? = nil ,
4555 swiftVersion: SwiftVersion ? = nil
4656 ) -> SourceFileSyntax {
47- var parser = Parser ( source, maximumNestingLevel: maximumNestingLevel, swiftVersion: swiftVersion)
48- return SourceFileSyntax . parse ( from: & parser)
57+ return withParser (
58+ source: source,
59+ maximumNestingLevel: maximumNestingLevel,
60+ parseTransition: nil ,
61+ swiftVersion: swiftVersion,
62+ experimentalFeatures: [ ]
63+ ) { SourceFileSyntax . parse ( from: & $0) }
4964 }
5065
5166 /// Parse the source code in the given string as Swift source file with support
@@ -120,8 +135,13 @@ extension Parser {
120135 source: String ,
121136 parseTransition: IncrementalParseTransition ?
122137 ) -> IncrementalParseResult {
123- var parser = Parser ( source, parseTransition: parseTransition)
124- return IncrementalParseResult ( tree: SourceFileSyntax . parse ( from: & parser) , lookaheadRanges: parser. lookaheadRanges)
138+ return withParser (
139+ source: source,
140+ maximumNestingLevel: nil ,
141+ parseTransition: parseTransition,
142+ swiftVersion: nil ,
143+ experimentalFeatures: [ ]
144+ ) { IncrementalParseResult ( tree: SourceFileSyntax . parse ( from: & $0) , lookaheadRanges: $0. lookaheadRanges) }
125145 }
126146
127147 /// Parse the source code in the given buffer as Swift source file with support
@@ -133,8 +153,13 @@ extension Parser {
133153 maximumNestingLevel: Int ? = nil ,
134154 parseTransition: IncrementalParseTransition ?
135155 ) -> IncrementalParseResult {
136- var parser = Parser ( source, maximumNestingLevel: maximumNestingLevel, parseTransition: parseTransition)
137- return IncrementalParseResult ( tree: SourceFileSyntax . parse ( from: & parser) , lookaheadRanges: parser. lookaheadRanges)
156+ return withParser (
157+ source: source,
158+ maximumNestingLevel: maximumNestingLevel,
159+ parseTransition: parseTransition,
160+ swiftVersion: nil ,
161+ experimentalFeatures: [ ]
162+ ) { IncrementalParseResult ( tree: SourceFileSyntax . parse ( from: & $0) , lookaheadRanges: $0. lookaheadRanges) }
138163 }
139164}
140165
0 commit comments