Skip to content

Commit 9ca6adf

Browse files
committed
Code refactor in PerformanceTest.swift
1 parent ee99a00 commit 9ca6adf

File tree

1 file changed

+16
-21
lines changed

1 file changed

+16
-21
lines changed

Sources/swift-parser-cli/Commands/PerformanceTest.swift

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)