From 5151afa123a9635d2f4de9555f8843460b284a11 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Mon, 17 May 2021 09:44:38 +0200 Subject: fix: static import permissions in dynamic imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartek IwaƄczuk --- cli/module_graph.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'cli/module_graph.rs') diff --git a/cli/module_graph.rs b/cli/module_graph.rs index a70a124a7..1ca738977 100644 --- a/cli/module_graph.rs +++ b/cli/module_graph.rs @@ -1775,7 +1775,7 @@ impl GraphBuilder { } Some(Ok(cached_module)) => { let is_root = &cached_module.specifier == specifier; - self.visit(cached_module, is_root)?; + self.visit(cached_module, is_root, is_dynamic)?; } _ => {} } @@ -1823,6 +1823,7 @@ impl GraphBuilder { &mut self, cached_module: CachedModule, is_root: bool, + is_root_dynamic: bool, ) -> Result<(), AnyError> { let specifier = cached_module.specifier.clone(); let requested_specifier = cached_module.requested_specifier.clone(); @@ -1859,14 +1860,22 @@ impl GraphBuilder { for (_, dep) in module.dependencies.iter() { let maybe_referrer = Some(dep.location.clone()); if let Some(specifier) = dep.maybe_code.as_ref() { - self.fetch(specifier, &maybe_referrer, dep.is_dynamic); + self.fetch( + specifier, + &maybe_referrer, + is_root_dynamic || dep.is_dynamic, + ); } if let Some(specifier) = dep.maybe_type.as_ref() { - self.fetch(specifier, &maybe_referrer, dep.is_dynamic); + self.fetch( + specifier, + &maybe_referrer, + is_root_dynamic || dep.is_dynamic, + ); } } if let Some((_, specifier)) = module.maybe_types.as_ref() { - self.fetch(specifier, &None, false); + self.fetch(specifier, &None, is_root_dynamic); } if specifier != requested_specifier { self -- cgit v1.2.3