@@ -203,40 +203,39 @@ public struct HtmlReporter: LogReporter {
203203 let steps = build. subSteps. map { $0. subSteps } . joined ( )
204204 let aggretatedAndSwiftSteps = steps. filter { !$0. fetchedFromCache &&
205205 ( $0. detailStepType == . swiftCompilation || $0. detailStepType == . swiftAggregatedCompilation) }
206- var swiftFunctionTimes : [ SwiftFunctionTime ] = [ ]
207- var swiftTypeCheckTimes : [ SwiftTypeCheck ] = [ ]
206+ var _swiftFunctionTimes : Set < SwiftFunctionTime > = [ ]
207+ var _swiftTypeCheckTimes : Set < SwiftTypeCheck > = [ ]
208208 var swiftSteps : [ BuildStep ] = [ ]
209209
210210 aggretatedAndSwiftSteps. forEach { step in
211- if step. detailStepType == . swiftAggregatedCompilation {
212- let swiftSubSteps = step. subSteps. filter { $0. detailStepType == . swiftCompilation}
213- . map { subStep in
214- subStep. with ( parentIdentifier: step. parentIdentifier)
215- }
216- swiftSteps. append ( contentsOf: swiftSubSteps)
217- let functions = swiftSubSteps
218- . compactMap { $0. swiftFunctionTimes }
219- . joined ( )
220- let typeChecks = swiftSubSteps
221- . compactMap { $0. swiftTypeCheckTimes }
222- . joined ( )
223- swiftFunctionTimes. append ( contentsOf: functions)
224- swiftTypeCheckTimes. append ( contentsOf: typeChecks)
225- } else {
226- swiftSteps. append ( step)
227- if let functions = step. swiftFunctionTimes {
228- swiftFunctionTimes. append ( contentsOf: functions)
229- }
230- if let typeChecks = step. swiftTypeCheckTimes {
231- swiftTypeCheckTimes. append ( contentsOf: typeChecks)
211+ let swiftSubSteps = step. subSteps. filter { $0. detailStepType == . swiftCompilation}
212+ . map { subStep in
213+ subStep. with ( parentIdentifier: step. parentIdentifier)
232214 }
215+ swiftSteps. append ( contentsOf: swiftSubSteps)
216+ let functions = swiftSubSteps
217+ . compactMap { $0. swiftFunctionTimes }
218+ . joined ( )
219+ let typeChecks = swiftSubSteps
220+ . compactMap { $0. swiftTypeCheckTimes }
221+ . joined ( )
222+ if let functionTimes = step. swiftFunctionTimes {
223+ functionTimes. forEach { _swiftFunctionTimes. insert ( $0) }
224+ }
225+ if let typeCheckTimes = step. swiftTypeCheckTimes {
226+ typeCheckTimes. forEach { _swiftTypeCheckTimes. insert ( $0) }
233227 }
228+ functions. forEach { _swiftFunctionTimes. insert ( $0) }
229+ typeChecks. forEach { _swiftTypeCheckTimes. insert ( $0) }
234230 }
235231
236232 swiftSteps. sort { $0. compilationDuration > $1. compilationDuration }
237233 let cSteps = steps. filter { !$0. fetchedFromCache && $0. detailStepType == . cCompilation }
238234 . sorted { $0. compilationDuration > $1. compilationDuration }
239235
236+ var swiftFunctionTimes : [ SwiftFunctionTime ] = Array ( _swiftFunctionTimes)
237+ var swiftTypeCheckTimes : [ SwiftTypeCheck ] = Array ( _swiftTypeCheckTimes)
238+
240239 swiftFunctionTimes. sort { $0. durationMS > $1. durationMS }
241240 let topFunctions = Array ( swiftFunctionTimes. prefix ( Self . maxSwifTypeChecks) )
242241
0 commit comments