Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Unified Diff: pkg/analyzer/tool/summary/dump_inferred_types.dart

Issue 1901303003: Don't visit parts redundantly when dumping inferred types. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/tool/summary/dump_inferred_types.dart
diff --git a/pkg/analyzer/tool/summary/dump_inferred_types.dart b/pkg/analyzer/tool/summary/dump_inferred_types.dart
index 32a1a65bfd39416ea1f169ec51d3b5a3c4437bad..3f5ce3251ee5d4a0536de7510921898f150bdc08 100644
--- a/pkg/analyzer/tool/summary/dump_inferred_types.dart
+++ b/pkg/analyzer/tool/summary/dump_inferred_types.dart
@@ -194,8 +194,22 @@ class InferredTypeCollector {
for (int i = 0; i < bundle.unlinkedUnitUris.length; i++) {
unlinkedUnits[bundle.unlinkedUnitUris[i]] = bundle.unlinkedUnits[i];
}
+ // Figure out which unlinked units are a part of another library so we won't
+ // visit them redundantly.
+ Set<String> partOfUris = new Set<String>();
+ unlinkedUnits.forEach((String unitUriString, UnlinkedUnit unlinkedUnit) {
+ Uri unitUri = Uri.parse(unitUriString);
+ for (String relativePartUriString in unlinkedUnit.publicNamespace.parts) {
+ partOfUris.add(
+ resolveRelativeUri(unitUri, Uri.parse(relativePartUriString))
+ .toString());
+ }
+ });
linkedLibraries
.forEach((String libraryUriString, LinkedLibrary linkedLibrary) {
+ if (partOfUris.contains(libraryUriString)) {
+ return;
+ }
Uri libraryUri = Uri.parse(libraryUriString);
UnlinkedUnit definingUnlinkedUnit = unlinkedUnits[libraryUriString];
visitUnit(definingUnlinkedUnit, linkedLibrary.units[0], libraryUriString);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698