@@ -41,19 +41,21 @@ struct PerformanceTest: ParsableCommand {
41
41
. filter { $0. pathExtension == " swift " }
42
42
. map { try Data ( contentsOf: $0) }
43
43
44
- var fileTransition : [ Data : ( SourceFileSyntax , IncrementalParseNodeAffectRangeCollector ) ] = [ : ]
44
+ var fileTransition : [ Data : ( parseTransition : IncrementalParseTransition , nodeAffectRangeCollector : IncrementalParseNodeAffectRangeCollector ) ] = [ : ]
45
45
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
+ )
54
55
55
- if self . incrementalParse == true {
56
- fileTransition [ file] = ( tree, incrementalParseAffectRangeCollector!)
56
+ fileTransition [ file] = (
57
+ IncrementalParseTransition ( previousTree: tree, edits: ConcurrentEdits ( fromSequential: [ ] ) ) , incrementalParseAffectRangeCollector
58
+ )
57
59
}
58
60
}
59
61
}
@@ -62,19 +64,12 @@ struct PerformanceTest: ParsableCommand {
62
64
let startInstructions = getInstructionsExecuted ( )
63
65
for _ in 0 ..< self . iterations {
64
66
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
68
67
file. withUnsafeBytes { buf in
69
- let tree = Parser . parse (
68
+ _ = Parser . parse (
70
69
source: buf. bindMemory ( to: UInt8 . self) ,
71
- parseNodeAffectRange: incrementalParseAffectRangeCollector ,
72
- parseTransition: parseTransition
70
+ parseNodeAffectRange: fileTransition [ file ] ? . nodeAffectRangeCollector ,
71
+ parseTransition: fileTransition [ file ] ? . parseTransition
73
72
)
74
-
75
- if self . incrementalParse == true {
76
- fileTransition [ file] = ( tree, incrementalParseAffectRangeCollector!)
77
- }
78
73
}
79
74
}
80
75
}
0 commit comments