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

Unified Diff: pkg/analyzer/lib/src/summary/resynthesize.dart

Issue 2002163002: Resynthesize exports lazily. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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/lib/src/summary/resynthesize.dart
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index da7c5f2d7f81762af8276541f0c87eb3a53c2bbd..42cecc2126130c845000c42a6f2f826ba47e4e94 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -1096,32 +1096,6 @@ class _LibraryResynthesizer {
}
/**
- * Resynthesize an [ExportElement],
- */
- ExportElement buildExport(
- _UnitResynthesizer definingUnitResynthesizer,
- UnlinkedExportPublic serializedExportPublic,
- UnlinkedExportNonPublic serializedExportNonPublic) {
- ExportElementImpl exportElement =
- new ExportElementImpl(serializedExportNonPublic.offset);
- String exportedLibraryUri = summaryResynthesizer.sourceFactory
- .resolveUri(librarySource, serializedExportPublic.uri)
- .uri
- .toString();
- exportElement.exportedLibrary = new LibraryElementHandle(
- summaryResynthesizer,
- new ElementLocationImpl.con3(<String>[exportedLibraryUri]));
- exportElement.uri = serializedExportPublic.uri;
- exportElement.combinators =
- serializedExportPublic.combinators.map(buildCombinator).toList();
- exportElement.uriOffset = serializedExportNonPublic.uriOffset;
- exportElement.uriEnd = serializedExportNonPublic.uriEnd;
- definingUnitResynthesizer.buildAnnotations(
- exportElement, serializedExportNonPublic.annotations);
- return exportElement;
- }
-
- /**
* Build an [ElementHandle] referring to the entity referred to by the given
* [exportName].
*/
@@ -1211,17 +1185,6 @@ class _LibraryResynthesizer {
partResynthesizers.add(partResynthesizer);
}
library.parts = partResynthesizers.map((r) => r.unit).toList();
- // Create exports.
- List<ExportElement> exports = <ExportElement>[];
- assert(unlinkedDefiningUnit.exports.length ==
- unlinkedDefiningUnit.publicNamespace.exports.length);
- for (int i = 0; i < unlinkedDefiningUnit.exports.length; i++) {
- exports.add(buildExport(
- definingUnitResynthesizer,
- unlinkedDefiningUnit.publicNamespace.exports[i],
- unlinkedDefiningUnit.exports[i]));
- }
- library.exports = exports;
// Populate units.
populateUnit(definingUnitResynthesizer);
for (_UnitResynthesizer partResynthesizer in partResynthesizers) {
@@ -1336,6 +1299,11 @@ class _LibraryResynthesizerContext implements LibraryResynthesizerContext {
LinkedLibrary get linkedLibrary => resynthesizer.linkedLibrary;
@override
+ LibraryElement buildExportedLibrary(String relativeUri) {
+ return _getLibraryByRelativeUri(relativeUri);
+ }
+
+ @override
Namespace buildExportNamespace() {
LibraryElementImpl library = resynthesizer.library;
return resynthesizer.buildExportNamespace(
@@ -1345,12 +1313,7 @@ class _LibraryResynthesizerContext implements LibraryResynthesizerContext {
@override
LibraryElement buildImportedLibrary(int dependency) {
String depUri = resynthesizer.linkedLibrary.dependencies[dependency].uri;
- String absoluteUri = resynthesizer.summaryResynthesizer.sourceFactory
- .resolveUri(resynthesizer.librarySource, depUri)
- .uri
- .toString();
- return new LibraryElementHandle(resynthesizer.summaryResynthesizer,
- new ElementLocationImpl.con3(<String>[absoluteUri]));
+ return _getLibraryByRelativeUri(depUri);
}
@override
@@ -1375,6 +1338,15 @@ class _LibraryResynthesizerContext implements LibraryResynthesizerContext {
LibraryElementImpl library = resynthesizer.library;
BuildLibraryElementUtils.patchTopLevelAccessors(library);
}
+
+ LibraryElementHandle _getLibraryByRelativeUri(String depUri) {
+ String absoluteUri = resynthesizer.summaryResynthesizer.sourceFactory
+ .resolveUri(resynthesizer.librarySource, depUri)
+ .uri
+ .toString();
+ return new LibraryElementHandle(resynthesizer.summaryResynthesizer,
+ new ElementLocationImpl.con3(<String>[absoluteUri]));
+ }
}
/**
« no previous file with comments | « pkg/analyzer/lib/src/dart/element/element.dart ('k') | pkg/analyzer/test/src/summary/resynthesize_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698