Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] swc_bundler example panick for multiple default exports (unreachable code is reached) #8824

Open
Charlie-XIAO opened this issue Apr 8, 2024 · 0 comments

Comments

@Charlie-XIAO
Copy link

Charlie-XIAO commented Apr 8, 2024

I used the example bundler code, where the contents of assets/main.js are:

export default a = 1;
export default b = 1;

Here is the repo containing the full minimal reproducible example, if the above is not clear enough: https://github.com/CSCI-SHU-410-SE-Project/repr-swc-multi-default-export.

However this causes an internal panic that I cannot recover from (entered unreachable code):

thread 'main' panicked at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\inline.rs:49:13:
internal error: entered unreachable code: Multiple identifiers equivalent up to span hygiene found: default#6
First = default#5
Second = default#5
Stack backtrace

   0: std::panicking::begin_panic_handler
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\std\src\panicking.rs:645
   1: core::panicking::panic_fmt
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:72
   2: swc_bundler::inline::Analyzer::store
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\inline.rs:49
   3: swc_bundler::inline::impl$1::visit_var_declarator
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\inline.rs:81
   4: swc_ecma_visit::visit_var_declarators::closure$0<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
   5: core::slice::iter::impl$181::for_each<swc_ecma_ast::decl::VarDeclarator,swc_ecma_visit::visit_var_declarators::closure_env$0<swc_bundler::inline::Analyzer> >
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\slice\iter\macros.rs:254
   6: swc_ecma_visit::visit_var_declarators<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
   7: swc_ecma_visit::Visit::visit_var_declarators<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
   8: swc_ecma_visit::visit_var_decl<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
   9: swc_ecma_visit::impl$629::visit_children_with<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  10: swc_bundler::inline::impl$1::visit_var_decl
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\inline.rs:75
  11: swc_ecma_visit::visit_decl<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  12: swc_ecma_visit::Visit::visit_decl<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  13: swc_ecma_visit::visit_stmt<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  14: swc_ecma_visit::Visit::visit_stmt<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  15: swc_ecma_visit::visit_module_item<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  16: swc_ecma_visit::Visit::visit_module_item<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  17: swc_ecma_visit::impl$444::visit_with<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_ecma_visit-0.98.7\src\lib.rs:540
  18: swc_bundler::modules::impl$0::visit_with::closure$0<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\modules\mod.rs:229
  19: core::iter::traits::iterator::Iterator::for_each::call::closure$0<tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::ModuleItem> > >,swc_bundler::modules::impl$0::visit_with::closure_env$0<swc_bundler::inline::Analyzer> >
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\traits\iterator.rs:855
  20: core::ops::function::impls::impl$3::call_mut<tuple$<tuple$<>,tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::ModuleItem> > > >,core::iter::traits::iterator::Iterator::for_each::call::closure_env$0<tuple$<swc_bundler::id::ModuleId,ref$<e
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\ops\function.rs:294
  21: core::ops::function::impls::impl$3::call_mut<tuple$<tuple$<>,tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::ModuleItem> > > >,ref_mut$<core::iter::traits::iterator::Iterator::for_each::call::closure_env$0<tuple$<swc_bundler::id::Module
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\ops\function.rs:294
  22: core::iter::adapters::map::map_fold::closure$0<ref$<enum2$<swc_ecma_ast::module::ModuleItem> >,tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::ModuleItem> > >,tuple$<>,swc_bundler::modules::impl$0::iter::closure$1::closure_env$0,ref_mut
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:85
  23: core::slice::iter::impl$181::fold<enum2$<swc_ecma_ast::module::ModuleItem>,tuple$<>,core::iter::adapters::map::map_fold::closure_env$0<ref$<enum2$<swc_ecma_ast::module::ModuleItem> >,tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::Modul
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\slice\iter\macros.rs:232
  24: core::iter::adapters::map::impl$2::fold<tuple$<swc_bundler::id::ModuleId,ref$<enum2$<swc_ecma_ast::module::ModuleItem> > >,core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::impl$0::iter::closure$1::closure_env$0,tupl
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:125
  25: core::iter::adapters::flatten::impl$35::fold::flatten::closure$0<core::iter::adapters::map::Map<core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::impl$0::iter::closure$1::closure_env$0>,tuple$<>,ref_mut$<core::iter::
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\flatten.rs:656
  26: core::iter::adapters::flatten::impl$33::iter_fold::flatten::closure$0<core::iter::adapters::map::Map<core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::impl$0::iter::closure$1::closure_env$0>,tuple$<>,core::iter::adap
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\flatten.rs:467
  27: core::iter::adapters::map::map_fold::closure$0<ref$<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,core::iter::adapters::map::Map<core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::impl$0::iter::clos
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:85
  28: core::slice::iter::impl$181::fold<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module>,tuple$<>,core::iter::adapters::map::map_fold::closure_env$0<ref$<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,core::iter::adapters::map::M
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\slice\iter\macros.rs:232
  29: core::iter::adapters::map::impl$2::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::impl$0::iter::closure$1::closure_env$0>,core::slice::iter::Iter<tuple$<swc_bundler::id::ModuleI
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:125
  30: core::iter::adapters::fuse::impl$3::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,swc_bundler::modules::impl$0::iter::closure_env$1>,tuple$<>,core::iter::adapters::flatten::imp
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\fuse.rs:94
  31: core::iter::adapters::flatten::FlattenCompat<core::iter::adapters::map::Map<core::slice::iter::Iter<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,swc_bundler::modules::impl$0::iter::closure_env$1>,core::iter::adapters::map::Map<core::sl
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\flatten.rs:474
  32: core::iter::adapters::flatten::impl$35::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,swc_bundler::modules::impl$0::iter::closure_env$1>,core::iter::adapters::map::Map<core::sl
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\flatten.rs:659
  33: core::iter::adapters::flatten::impl$3::fold<core::slice::iter::Iter<tuple$<swc_bundler::id::ModuleId,swc_ecma_ast::module::Module> >,core::iter::adapters::map::Map<core::slice::iter::Iter<enum2$<swc_ecma_ast::module::ModuleItem> >,swc_bundler::modules::im
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\flatten.rs:81
  34: core::iter::adapters::chain::impl$1::fold<core::iter::adapters::flatten::FlatMap<std::collections::hash::map::Iter<swc_bundler::id::ModuleId,alloc::vec::Vec<enum2$<swc_ecma_ast::module::ModuleItem>,alloc::alloc::Global> >,core::iter::adapters::map::Map<co
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\chain.rs:93
  35: core::iter::adapters::chain::impl$1::fold<core::iter::adapters::chain::Chain<core::iter::adapters::flatten::FlatMap<std::collections::hash::map::Iter<swc_bundler::id::ModuleId,alloc::vec::Vec<enum2$<swc_ecma_ast::module::ModuleItem>,alloc::alloc::Global>
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\chain.rs:90
  36: core::iter::traits::iterator::Iterator::for_each<core::iter::adapters::chain::Chain<core::iter::adapters::chain::Chain<core::iter::adapters::flatten::FlatMap<std::collections::hash::map::Iter<swc_bundler::id::ModuleId,alloc::vec::Vec<enum2$<swc_ecma_ast::
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\traits\iterator.rs:858
  37: swc_bundler::modules::Modules::visit_with<swc_bundler::inline::Analyzer>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\modules\mod.rs:229
  38: swc_bundler::inline::inline
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\inline.rs:27
  39: swc_bundler::bundler::Bundler<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>::finalize_merging_of_entry<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\chunk\merge.rs:434
  40: swc_bundler::bundler::chunk::merge::impl$1::merge_into_entry::closure$0<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\chunk\merge.rs:129
  41: scoped_tls::ScopedKey<swc_common::syntax_pos::Globals>::set<swc_common::syntax_pos::Globals,swc_bundler::bundler::chunk::merge::impl$1::merge_into_entry::closure_env$0<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>,tuple$<> >
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\scoped-tls-1.0.1\src\lib.rs:137
  42: better_scoped_tls::ScopedKey<swc_common::syntax_pos::Globals>::set<swc_common::syntax_pos::Globals,swc_bundler::bundler::chunk::merge::impl$1::merge_into_entry::closure_env$0<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>,tup
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\better_scoped_tls-0.1.1\src\lib.rs:55
  43: swc_bundler::bundler::Bundler<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>::run<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver,swc_bundler::bundler::chunk::merge::impl$1::merge_into_entry::closu
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\mod.rs:218
  44: swc_bundler::bundler::Bundler<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>::merge_into_entry<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\chunk\merge.rs:97
  45: swc_bundler::bundler::chunk::impl$0::chunk::closure$2<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\chunk\mod.rs:103
  46: core::iter::adapters::map::map_try_fold::closure$0<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::vec::in_place_drop::InPlaceDrop<swc_bundler::bundler::Bundle>,enum2$<
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:92
  47: core::iter::traits::iterator::Iterator::try_fold<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global>,alloc::vec::in_place_drop::InPlaceDrop<swc_bundler::bundler::Bundle>,core::iter::adapter
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\traits\iterator.rs:2462
  48: core::iter::adapters::map::impl$2::try_fold<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global>,swc_bundler::bundler::chunk::
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:118
  49: core::iter::adapters::map::impl$2::try_fold<swc_bundler::bundler::Bundle,core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global>,swc_bundler::bundler::chunk::impl
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\adapters\map.rs:118
  50: alloc::vec::in_place_collect::impl$2::collect_in_place<swc_bundler::bundler::Bundle,core::iter::adapters::map::Map<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc:
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\alloc\src\vec\in_place_collect.rs:366
  51: alloc::vec::in_place_collect::impl$1::from_iter<swc_bundler::bundler::Bundle,core::iter::adapters::map::Map<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\alloc\src\vec\in_place_collect.rs:253
  52: alloc::vec::impl$14::from_iter<swc_bundler::bundler::Bundle,core::iter::adapters::map::Map<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global>,swc_bundler::bu
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\alloc\src\vec\mod.rs:2791
  53: core::iter::traits::iterator::Iterator::collect<core::iter::adapters::map::Map<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<tuple$<swc_bundler::id::ModuleId,swc_bundler::modules::Modules>,alloc::alloc::Global>,swc_bundler::bundler::chunk
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\iter\traits\iterator.rs:2054
  54: swc_bundler::bundler::Bundler<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>::chunk<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\chunk\mod.rs:100
  55: swc_bundler::bundler::Bundler<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>::bundle<swc_multi_default_export::PathLoader,swc_multi_default_export::PathResolver>
             at C:\Users\lenovo\.cargo\registry\src\index.crates.io-6f17d22bba15001f\swc_bundler-0.225.18\src\bundler\mod.rs:199
  56: swc_multi_default_export::main
             at .\src\main.rs:31
  57: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\ops\function.rs:250
  58: core::hint::black_box
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\hint.rs:286
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\debug\swc-multi-default-export.exe` (exit code: 101)

I understand that the bundler code is not actively maintained, but given this is not a recoverable error, would you please consider a fix? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant