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

Unified Diff: pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart

Issue 2991753002: Add export dependencies to Kernel libraries and use them to resynthesize ExportElement(s) in Analyz… (Closed)
Patch Set: Extract exportedLibrary. Created 3 years, 5 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/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
index e4dc1c7c5e4c23cc495cadd4b86d4e18622d11e7..5f9ef6bc0b7d43312d91918d4eaea26311079ea0 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
@@ -5,6 +5,7 @@
library fasta.kernel_library_builder;
import 'package:front_end/src/fasta/dill/dill_library_builder.dart';
+import 'package:front_end/src/fasta/export.dart';
import 'package:front_end/src/fasta/import.dart';
import 'package:kernel/ast.dart';
@@ -731,6 +732,18 @@ class KernelLibraryBuilder
new LibraryDependency.import(importedLibrary, name: import.prefix));
}
}
+ for (Export import in exports) {
+ var exportedBuilder = import.exported;
+ Library exportedLibrary;
+ if (exportedBuilder is DillLibraryBuilder) {
+ exportedLibrary = exportedBuilder.library;
+ } else if (exportedBuilder is KernelLibraryBuilder) {
+ exportedLibrary = exportedBuilder.library;
+ }
ahe 2017/08/08 09:47:58 I think it's possible to replace lines 735-742 wit
scheglov 2017/08/08 16:18:46 OK, understood. See https://codereview.chromium.or
+ if (exportedLibrary != null) {
+ library.addDependency(new LibraryDependency.export(exportedLibrary));
+ }
+ }
library.name = name;
library.procedures.sort(compareProcedures);
return library;
@@ -794,7 +807,7 @@ class KernelLibraryBuilder
// Handles the case where the same prefix is used for different
// imports.
return builder
- ..exports.merge(other.exports,
+ ..exportScope.merge(other.exportScope,
(String name, Builder existing, Builder member) {
return buildAmbiguousBuilder(name, existing, member, charOffset,
isExport: isExport, isImport: isImport);

Powered by Google App Engine
This is Rietveld 408576698