Skip to content

Commit 816b974

Browse files
bwilkersonCommit Queue
authored and
Commit Queue
committed
Report the number and sizes of library cycles
Reported in the report created by the diagnostic pages. Change-Id: I44de39b8388101d8ef5c5d0ecd5d50c1a1f559cb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/430600 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent 2dc94ee commit 816b974

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

pkg/analysis_server/lib/src/status/diagnostics.dart

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -617,21 +617,41 @@ class CollectReportPage extends DiagnosticPage {
617617
var driverMapValues = server.driverMap.values.toList();
618618
var contexts = [];
619619
collectedData['contexts'] = contexts;
620+
620621
Set<String> uniqueKnownFiles = {};
621-
for (var data in driverMapValues) {
622+
for (var driver in driverMapValues) {
622623
var contextData = {};
623624
contexts.add(contextData);
624625
// We don't include the name because the name might include confidential
625626
// information.
626-
var knownFiles = data.knownFiles.map((f) => f.path).toSet();
627-
contextData['priorityFiles'] = data.priorityFiles.length;
628-
contextData['addedFiles'] = data.addedFiles.length;
627+
var knownFiles = driver.knownFiles.map((f) => f.path).toSet();
628+
contextData['priorityFiles'] = driver.priorityFiles.length;
629+
contextData['addedFiles'] = driver.addedFiles.length;
629630
contextData['knownFiles'] = knownFiles.length;
630631
uniqueKnownFiles.addAll(knownFiles);
631632

632-
var collectedOptionsData = _collectOptionsData(data);
633+
var collectedOptionsData = _collectOptionsData(driver);
633634
contextData['lints'] = collectedOptionsData.lints.sorted();
634635
contextData['plugins'] = collectedOptionsData.plugins.toList();
636+
637+
Set<LibraryCycle> cycles = {};
638+
var contextRoot = driver.analysisContext!.contextRoot;
639+
for (var filePath in contextRoot.analyzedFiles()) {
640+
var fileState = driver.fsState.getFileForPath(filePath);
641+
var kind = fileState.kind;
642+
if (kind is LibraryFileKind) {
643+
cycles.add(kind.libraryCycle);
644+
}
645+
}
646+
var cycleData = <int, int>{};
647+
for (var cycle in cycles) {
648+
cycleData[cycle.size] = (cycleData[cycle.size] ?? 0) + 1;
649+
}
650+
var sortedCycleData = <int, int>{};
651+
for (var size in cycleData.keys.toList()..sort()) {
652+
sortedCycleData[size] = cycleData[size]!;
653+
}
654+
contextData['libraryCycleData'] = sortedCycleData;
635655
}
636656
collectedData['uniqueKnownFiles'] = uniqueKnownFiles.length;
637657
}

0 commit comments

Comments
 (0)