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

Non ascii char can not be use parameter type with destructuring #36151

Closed
1 task done
flex-jonghyen opened this issue Apr 14, 2022 · 10 comments · Fixed by #36351
Closed
1 task done

Non ascii char can not be use parameter type with destructuring #36151

flex-jonghyen opened this issue Apr 14, 2022 · 10 comments · Fixed by #36351
Assignees
Labels
SWC Related to minification/transpilation in Next.js.

Comments

@flex-jonghyen
Copy link

Verify canary release

  • I verified that the issue exists in Next.js canary release

Provide environment information

    Operating System:
      Platform: darwin
      Arch: arm64
      Version: Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000
    Binaries:
      Node: 16.14.0
      npm: 8.3.1
      Yarn: 3.2.0
      pnpm: 6.32.4
    Relevant packages:
      next: 12.1.6-canary.0
      react: 18.0.0
      react-dom: 18.0.0

What browser are you using? (if relevant)

No response

How are you deploying your application? (if relevant)

No response

Describe the Bug

image

type ü = {
  name: string;
  value: string;
};

export const SomeComponent = ({ name, value }: ü) => {
  return (
    <div>
      {name} {value}
    </div>
  );
};

Expected Behavior

Not met errors

To Reproduce

https://github.com/flex-jonghyen/reproduce-bug

@flex-jonghyen flex-jonghyen added the bug Issue was opened via the bug report template. label Apr 14, 2022
@hg-pyun
Copy link

hg-pyun commented Apr 21, 2022

I've encountered the same problem. I hope this bug is fixed soon!

@hg-pyun
Copy link

hg-pyun commented Apr 21, 2022

@timneutkens I saw the error message regarding the Rust. Is this a SWC problem? But I think it works well when I use SWC standalone.

@timneutkens timneutkens added kind: bug SWC Related to minification/transpilation in Next.js. and removed bug Issue was opened via the bug report template. labels Apr 21, 2022
@kdy1 kdy1 self-assigned this Apr 21, 2022
@hg-pyun
Copy link

hg-pyun commented Apr 21, 2022

Holy moly, thank you for explanation.

@flex-jonghyen
Copy link
Author

Thanks all! I can't wait for this!

@flex-jonghyen
Copy link
Author

I update next to Next.js v12.1.6-canary.4

 Operating System:
      Platform: darwin
      Arch: arm64
      Version: Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000
    Binaries:
      Node: 16.14.0
      npm: 8.3.1
      Yarn: 3.2.0
      pnpm: 6.32.4
    Relevant packages:
      next: 12.1.6-canary.4
      react: 18.0.0
      react-dom: 18.0.0

I got the same error.

This is error message on console.

thread '<unnamed>' panicked at 'byte index 29 is not a char boundary; it is inside 'ü' (bytes 28..30) of `{ 한글변수명, value }: ü`', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.1/src/lib.rs:2210:33
error - ./src/SomeComponent.tsx
Error: failed to process byte index 29 is not a char boundary; it is inside 'ü' (bytes 28..30) of `{ 한글변수명, value }: ü`

I updated my reproduce repo

@kdy1
Copy link
Member

kdy1 commented Apr 21, 2022

yarn dev works but yarn build fails.

Backtrace seems useless, though.

Error: failed to process byte index 29 is not a char boundary; it is inside 'ü' (bytes 28..30) of `{ 한글변수명, value }: ü`

Stack backtrace:
   0: _napi_register_module_v1
   1: _rust_eh_personality
   2: <unknown>
   3: <unknown>
   4: _worker
   5: __pthread_deallocate

@kdy1
Copy link
Member

kdy1 commented Apr 21, 2022

Useful backtrace:


info  - Creating an optimized production build .Panic: PanicInfo { payload: Any { .. }, message: Some(byte index 29 is not a char boundary; it is inside 'ü' (bytes 28..30) of `{ 한글변수명, value }: ü`), location: Location { file: "/Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs", line: 2228, col: 33 }, can_unwind: true }
Backtrace:    0: backtrace::backtrace::libunwind::trace
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/mod.rs:66:5
   1: backtrace::backtrace::trace
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/mod.rs:53:14
   2: backtrace::capture::Backtrace::create
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/capture.rs:176:9
   3: backtrace::capture::Backtrace::new
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/capture.rs:140:22
   4: next_swc_napi::init::{{closure}}
             at /Users/kdy1/projects/next-up/packages/next-swc/crates/napi/src/lib.rs:60:29
   5: std::panicking::rust_panic_with_hook
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panicking.rs:702:17
   6: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panicking.rs:588:13
   7: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/sys_common/backtrace.rs:138:18
   8: rust_begin_unwind
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panicking.rs:584:5
   9: core::panicking::panic_fmt
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/core/src/panicking.rs:142:14
  10: core::str::slice_error_fail
  11: core::str::traits::<impl core::slice::index::SliceIndex<str> for core::ops::range::RangeTo<usize>>::index
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/core/src/str/traits.rs:289:21
  12: core::str::traits::<impl core::ops::index::Index<I> for str>::index
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/core/src/str/traits.rs:64:9
  13: <alloc::string::String as core::ops::index::Index<core::ops::range::RangeTo<usize>>>::index
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/alloc/src/string.rs:2240:10
  14: swc_ecma_codegen::Emitter<W>::emit_list5
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2228:33
  15: swc_ecma_codegen::Emitter<W>::emit_list
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2066:9
  16: swc_ecma_codegen::Emitter<W>::emit_object_pat
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2451:9
  17: swc_ecma_codegen::Emitter<W>::emit_object_pat::<impl swc_ecma_codegen::Node for swc_ecma_ast::pat::ObjectPat>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2433:5
  18: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  19: swc_ecma_codegen::Emitter<W>::emit_pat
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2334:35
  20: swc_ecma_codegen::Emitter<W>::emit_pat::<impl swc_ecma_codegen::Node for swc_ecma_ast::pat::Pat>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2327:5
  21: swc_ecma_codegen::Emitter<W>::emit_list5
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2198:17
  22: swc_ecma_codegen::Emitter<W>::emit_list
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2066:9
  23: swc_ecma_codegen::Emitter<W>::emit_arrow_expr
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:952:9
  24: swc_ecma_codegen::Emitter<W>::emit_arrow_expr::<impl swc_ecma_codegen::Node for swc_ecma_ast::expr::ArrowExpr>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:916:5
  25: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  26: swc_ecma_codegen::Emitter<W>::emit_expr
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:659:35
  27: swc_ecma_codegen::Emitter<W>::emit_expr::<impl swc_ecma_codegen::Node for swc_ecma_ast::expr::Expr>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:655:5
  28: <alloc::boxed::Box<N> as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:57:9
  29: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  30: swc_ecma_codegen::decl::<impl swc_ecma_codegen::Emitter<W>>::emit_var_declarator
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/decl.rs:149:13
  31: swc_ecma_codegen::decl::<impl swc_ecma_codegen::Emitter<W>>::emit_var_declarator::<impl swc_ecma_codegen::Node for swc_ecma_ast::decl::VarDeclarator>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/decl.rs:137:5
  32: swc_ecma_codegen::Emitter<W>::emit_list5
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2198:17
  33: swc_ecma_codegen::Emitter<W>::emit_list
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:2066:9
  34: swc_ecma_codegen::decl::<impl swc_ecma_codegen::Emitter<W>>::emit_var_decl_inner
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/decl.rs:124:9
  35: swc_ecma_codegen::decl::<impl swc_ecma_codegen::Emitter<W>>::emit_decl
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/decl.rs:19:17
  36: swc_ecma_codegen::decl::<impl swc_ecma_codegen::Emitter<W>>::emit_decl::<impl swc_ecma_codegen::Node for swc_ecma_ast::decl::Decl>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/decl.rs:12:5
  37: swc_ecma_codegen::Emitter<W>::emit_export_decl
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:180:17
  38: swc_ecma_codegen::Emitter<W>::emit_export_decl::<impl swc_ecma_codegen::Node for swc_ecma_ast::module_decl::ExportDecl>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:161:5
  39: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  40: swc_ecma_codegen::Emitter<W>::emit_module_decl
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:144:46
  41: swc_ecma_codegen::Emitter<W>::emit_module_decl::<impl swc_ecma_codegen::Node for swc_ecma_ast::module_decl::ModuleDecl>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:138:5
  42: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  43: swc_ecma_codegen::Emitter<W>::emit_module_item
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:133:49
  44: swc_ecma_codegen::Emitter<W>::emit_module_item::<impl swc_ecma_codegen::Node for swc_ecma_ast::module::ModuleItem>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:128:5
  45: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  46: swc_ecma_codegen::Emitter<W>::emit_module
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:102:13
  47: swc_ecma_codegen::Emitter<W>::emit_module::<impl swc_ecma_codegen::Node for swc_ecma_ast::module::Module>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:92:5
  48: <&N as swc_ecma_codegen::Node>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:66:9
  49: swc_ecma_codegen::Emitter<W>::emit_program
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:87:39
  50: swc_ecma_codegen::Emitter<W>::emit_program::<impl swc_ecma_codegen::Node for swc_ecma_ast::module::Program>::emit_with
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc_ecma_codegen-0.105.2/src/lib.rs:84:5
  51: swc::Compiler::print::{{closure}}
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:583:21
  52: scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  53: better_scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/better_scoped_tls-0.1.0/src/lib.rs:55:9
  54: swc::Compiler::run
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:379:9
  55: swc::Compiler::print
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:552:9
  56: swc::Compiler::process_js_inner::{{closure}}
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:1254:13
  57: scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  58: better_scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/better_scoped_tls-0.1.0/src/lib.rs:55:9
  59: swc::Compiler::run
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:379:9
  60: swc::Compiler::process_js_inner
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:1228:9
  61: swc::Compiler::process_js_with_custom_pass::{{closure}}
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:1057:13
  62: scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  63: better_scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/better_scoped_tls-0.1.0/src/lib.rs:55:9
  64: swc::Compiler::run
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:379:9
  65: swc::Compiler::process_js_with_custom_pass
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:1012:9
  66: <next_swc_napi::transform::TransformTask as napi::task::Task>::compute::{{closure}}::{{closure}}::{{closure}}
             at /Users/kdy1/projects/next-up/packages/next-swc/crates/napi/src/transform.rs:110:25
  67: scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  68: better_scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/better_scoped_tls-0.1.0/src/lib.rs:55:9
  69: swc::Compiler::run
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:379:9
  70: <next_swc_napi::transform::TransformTask as napi::task::Task>::compute::{{closure}}::{{closure}}
             at /Users/kdy1/projects/next-up/packages/next-swc/crates/napi/src/transform.rs:79:21
  71: swc::try_with_handler::{{closure}}
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:311:40
  72: scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  73: better_scoped_tls::ScopedKey<T>::set
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/better_scoped_tls-0.1.0/src/lib.rs:55:9
  74: swc::try_with_handler
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/swc-0.169.0/src/lib.rs:311:15
  75: <next_swc_napi::transform::TransformTask as napi::task::Task>::compute::{{closure}}
             at /Users/kdy1/projects/next-up/packages/next-swc/crates/napi/src/transform.rs:72:13
  76: core::ops::function::FnOnce::call_once
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/core/src/ops/function.rs:227:5
  77: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/core/src/panic/unwind_safe.rs:271:9
  78: std::panicking::try::do_call
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panicking.rs:492:40
  79: ___rust_try
  80: std::panicking::try
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panicking.rs:456:19
  81: std::panic::catch_unwind
             at /rustc/68369a041cea809a87e5bd80701da90e0e0a4799/library/std/src/panic.rs:137:14
  82: <next_swc_napi::transform::TransformTask as napi::task::Task>::compute
             at /Users/kdy1/projects/next-up/packages/next-swc/crates/napi/src/transform.rs:71:19
  83: napi::async_work::execute
             at /Users/kdy1/.cargo/registry/src/github.com-1ecc6299db9ec823/napi-1.8.0/src/async_work.rs:86:5
  84: _worker
  85: __pthread_deallocate

Oh... It's caused by codegen.
Thank you for reporting!
Seems like minified codegen has a bug.

@github-actions
Copy link
Contributor

This closed issue has been automatically locked because it had no new activity for a month. If you are running into a similar issue, please create a new issue with the steps to reproduce. Thank you.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 22, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
SWC Related to minification/transpilation in Next.js.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants