Resynthesize deferred imports from Kernel.

R=brianwilkerson@google.com

Bug:
Change-Id: I6eca89aced40ccfca273152860dad2c5fdd3ddb5
Reviewed-on: https://dart-review.googlesource.com/5886
Reviewed-by: Paul Berry <paulberry@google.com>
This commit is contained in:
Konstantin Shcheglov
2017-09-14 19:25:21 +00:00
parent 2e7d54ae33
commit 8ea25ec10c
3 changed files with 12 additions and 8 deletions
@@ -5930,6 +5930,9 @@ class ImportElementImpl extends UriReferencedElementImpl
@override
bool get isDeferred {
if (_kernel != null) {
return _kernel.isDeferred;
}
if (_unlinkedImport != null) {
return _unlinkedImport.isDeferred;
}
@@ -406,11 +406,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest {
await super.test_import_configurations_useFirst();
}
@failingTest
test_import_deferred() async {
await super.test_import_deferred();
}
@failingTest
test_import_invalidUri_metadata() async {
await super.test_import_invalidUri_metadata();
@@ -771,9 +771,15 @@ class KernelLibraryBuilder
for (Import import in imports) {
Library importedLibrary = import.imported.target;
if (importedLibrary != null) {
library.addDependency(new LibraryDependency.import(importedLibrary,
name: import.prefix,
combinators: toKernelCombinators(import.combinators)));
if (import.deferred && import.prefix != null) {
library.addDependency(new LibraryDependency.deferredImport(
importedLibrary, import.prefix,
combinators: toKernelCombinators(import.combinators)));
} else {
library.addDependency(new LibraryDependency.import(importedLibrary,
name: import.prefix,
combinators: toKernelCombinators(import.combinators)));
}
}
}