@@ -41,19 +41,21 @@ struct PerformanceTest: ParsableCommand {
4141 . filter { $0. pathExtension == " swift " }
4242 . map { try Data ( contentsOf: $0) }
4343
44- var fileTransition : [ Data : ( SourceFileSyntax , IncrementalParseNodeAffectRangeCollector ) ] = [ : ]
44+ var fileTransition : [ Data : ( parseTransition : IncrementalParseTransition , nodeAffectRangeCollector : IncrementalParseNodeAffectRangeCollector ) ] = [ : ]
4545
46- /// The initial parse
47- for file in files {
48- let incrementalParseAffectRangeCollector = self . incrementalParse ? IncrementalParseNodeAffectRangeCollector ( ) : nil
49- file. withUnsafeBytes { buf in
50- let tree = Parser . parse (
51- source: buf. bindMemory ( to: UInt8 . self) ,
52- parseNodeAffectRange: incrementalParseAffectRangeCollector
53- )
46+ if self . incrementalParse {
47+ /// The initial parse for incremental parse
48+ for file in files {
49+ let incrementalParseAffectRangeCollector = IncrementalParseNodeAffectRangeCollector ( )
50+ file. withUnsafeBytes { buf in
51+ let tree = Parser . parse (
52+ source: buf. bindMemory ( to: UInt8 . self) ,
53+ parseNodeAffectRange: incrementalParseAffectRangeCollector
54+ )
5455
55- if self . incrementalParse == true {
56- fileTransition [ file] = ( tree, incrementalParseAffectRangeCollector!)
56+ fileTransition [ file] = (
57+ IncrementalParseTransition ( previousTree: tree, edits: ConcurrentEdits ( fromSequential: [ ] ) ) , incrementalParseAffectRangeCollector
58+ )
5759 }
5860 }
5961 }
@@ -62,19 +64,12 @@ struct PerformanceTest: ParsableCommand {
6264 let startInstructions = getInstructionsExecuted ( )
6365 for _ in 0 ..< self . iterations {
6466 for file in files {
65- let parseTransition =
66- incrementalParse ? IncrementalParseTransition ( previousTree: fileTransition [ file] !. 0 , edits: ConcurrentEdits ( fromSequential: [ ] ) ) : nil
67- let incrementalParseAffectRangeCollector = incrementalParse ? fileTransition [ file] !. 1 : nil
6867 file. withUnsafeBytes { buf in
69- let tree = Parser . parse (
68+ _ = Parser . parse (
7069 source: buf. bindMemory ( to: UInt8 . self) ,
71- parseNodeAffectRange: incrementalParseAffectRangeCollector ,
72- parseTransition: parseTransition
70+ parseNodeAffectRange: fileTransition [ file ] ? . nodeAffectRangeCollector ,
71+ parseTransition: fileTransition [ file ] ? . parseTransition
7372 )
74-
75- if self . incrementalParse == true {
76- fileTransition [ file] = ( tree, incrementalParseAffectRangeCollector!)
77- }
7873 }
7974 }
8075 }
0 commit comments