From 8ea25ec10c5cf3cf4ba0afa83f5572902b368476 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Thu, 14 Sep 2017 19:25:21 +0000 Subject: [PATCH] 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 --- pkg/analyzer/lib/src/dart/element/element.dart | 3 +++ .../test/src/summary/resynthesize_kernel_test.dart | 5 ----- .../lib/src/fasta/kernel/kernel_library_builder.dart | 12 +++++++++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart index e75d535e4c9..05310346ca1 100644 --- a/pkg/analyzer/lib/src/dart/element/element.dart +++ b/pkg/analyzer/lib/src/dart/element/element.dart @@ -5930,6 +5930,9 @@ class ImportElementImpl extends UriReferencedElementImpl @override bool get isDeferred { + if (_kernel != null) { + return _kernel.isDeferred; + } if (_unlinkedImport != null) { return _unlinkedImport.isDeferred; } diff --git a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart index cfdcfb48637..96e6b411607 100644 --- a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart +++ b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart @@ -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(); 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 be655d10c9b..c6fd50bdf69 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 @@ -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))); + } } }