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

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

Issue 1589573003: Include the export namespace in the prelinked summary. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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
Index: pkg/analyzer/tool/summary/idl.dart
diff --git a/pkg/analyzer/tool/summary/idl.dart b/pkg/analyzer/tool/summary/idl.dart
index 39e7a4a8aff9f1c79c4fd1cfc30cda706574e4fa..6f63532ea56af7de46d6377af4d356cb287d015f 100644
--- a/pkg/analyzer/tool/summary/idl.dart
+++ b/pkg/analyzer/tool/summary/idl.dart
@@ -84,6 +84,37 @@ class PrelinkedDependency {
}
/**
+ * Information about a single name in the export namespace of the library that
+ * is not in the public namespace.
+ */
+class PrelinkedExportName {
+ /**
+ * Name of the exported entity. TODO(paulberry): do we include the trailing
+ * '=' for a setter?
+ */
+ String name;
+
+ /**
+ * Index into [PrelinkedLibrary.dependencies] for the library in which the
+ * entity is defined.
+ */
+ int dependency;
+
+ /**
+ * Integer index indicating which unit in the imported library contains the
scheglov 2016/01/13 20:59:35 "in the exported library"?
Paul Berry 2016/01/13 21:15:24 Done.
+ * definition of the entity. As with indices into [PrelinkedLibrary.units],
+ * zero represents the defining compilation unit, and nonzero values
+ * represent parts in the order of the corresponding `part` declarations.
+ */
+ int unit;
+
+ /**
+ * The kind of the entity being referred to.
+ */
+ PrelinkedReferenceKind kind;
+}
+
+/**
* Pre-linked summary of a library.
*/
@topLevel
@@ -115,6 +146,15 @@ class PrelinkedLibrary {
* well, since there will effectively be a one-to-one mapping.
*/
List<int> importDependencies;
+
+ /**
+ * Information about entities in the export namespace of the library that are
+ * not in the public namespace of the library (that is, entities that are
+ * brought into the namespace via `export` directives).
+ *
+ * Sorted by name.
+ */
+ List<PrelinkedExportName> exportNames;
}
/**
@@ -164,9 +204,14 @@ enum PrelinkedReferenceKind {
typedef,
/**
- * The entity is a variable or executable.
+ * The entity is a top level function.
+ */
+ topLevelFunction,
+
+ /**
+ * The entity is a top level getter or setter.
*/
- other,
+ topLevelPropertyAccessor,
/**
* The entity is a prefix.

Powered by Google App Engine
This is Rietveld 408576698