rust-analyzer: internal error: entered unreachable code

Stack trace:

thread 'main' panicked at 'internal error: entered unreachable code', crates/proc_macro_srv/src/abis/abi_1_56/proc_macro/bridge/mod.rs:256:5

stack backtrace:

   0: rust_begin_unwind
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/core/src/panicking.rs:106:14
   2: core::panicking::panic
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/core/src/panicking.rs:47:5
   3: <proc_macro_srv::abis::abi_1_56::proc_macro::bridge::api_tags::Method as proc_macro_srv::abis::abi_1_56::proc_macro::bridge::rpc::DecodeMut<S>>::decode
   4: <proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::Dispatcher<proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::DispatcherTrait>::dispatch
   5: <proc_macro_srv::abis::abi_1_56::proc_macro::bridge::closure::Closure<A,R> as core::convert::From<&mut F>>::from::call
   6: proc_macro::bridge::closure::Closure<A,R>::call
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/closure.rs:27:18
   7: proc_macro::bridge::client::TokenStream::into_iter::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:244:25
   8: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:336:47
   9: proc_macro::bridge::client::BridgeState::with::{{closure}}::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:293:17
  10: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/scoped_cell.rs:75:9
  11: proc_macro::bridge::client::BridgeState::with::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:291:13
  12: std::thread::local::LocalKey<T>::try_with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/thread/local.rs:399:16
  13: std::thread::local::LocalKey<T>::with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/thread/local.rs:375:9
  14: proc_macro::bridge::client::BridgeState::with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:290:9
  15: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:329:9
  16: proc_macro::bridge::client::TokenStream::into_iter
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:237:17
  17: proc_macro::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro::TokenStream>::into_iter
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/lib.rs:293:22
  18: <proc_macro2::imp::TokenStream as core::iter::traits::collect::IntoIterator>::into_iter
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.32/src/wrapper.rs:314:41
  19: proc_macro2::token_stream::<impl core::iter::traits::collect::IntoIterator for proc_macro2::TokenStream>::into_iter
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.32/src/lib.rs:1289:24
  20: syn::buffer::TokenBuffer::inner_new
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/buffer.rs:53:19
  21: syn::buffer::TokenBuffer::new2
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/buffer.rs:112:9
  22: <F as syn::parse::Parser>::parse2
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse.rs:1207:19
  23: syn::parse::Parser::parse
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse.rs:1161:9
  24: syn::parse_macro_input::parse
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse_macro_input.rs:139:5
  25: thiserror_impl::derive_error
             at /home/shui/.cargo/registry/src/github.com-1ecc6299db9ec823/thiserror-impl-1.0.30/src/lib.rs:28:17
  26: core::ops::function::FnOnce::call_once
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/core/src/ops/function.rs:227:5
  27: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:410:40
  28: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:377:26
  29: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/scoped_cell.rs:80:33
  30: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/scoped_cell.rs:75:9
  31: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/scoped_cell.rs:80:9
  32: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:325:35
  33: std::thread::local::LocalKey<T>::try_with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/thread/local.rs:399:16
  34: std::thread::local::LocalKey<T>::with
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/thread/local.rs:375:9

  35: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter

             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:325:9
  36: proc_macro::bridge::client::run_client::{{closure}}
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:370:9

  37: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/core/src/panic/unwind_safe.rs:271:9
  38: std::panicking::try::do_call
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/panicking.rs:406:40
  39: __rust_try
  40: std::panicking::try
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/panicking.rs:370:19
  41: std::panic::catch_unwind
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/std/src/panic.rs:133:14
  42: proc_macro::bridge::client::run_client
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:369:5
  43: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
             at /rustc/ad442399756573dccacb314b6bf8079964bcc72a/library/proc_macro/src/bridge/client.rs:410:13

  44: proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::run_server
  45: proc_macro_srv::abis::abi_1_56::Abi::expand
  46: proc_macro_srv::dylib::Expander::expand
  47: proc_macro_srv::ProcMacroSrv::expand
  48: proc_macro_srv::cli::run
  49: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Caused by: https://github.com/yshui/docconfig/blob/0a534db4b3d940fd83e492844a74c6a7f9ba1856/docconfig_derive/src/lib.rs

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 7
  • Comments: 28 (11 by maintainers)

Commits related to this issue

Most upvoted comments

If you’re having this, just upgrade your rust toolchain at or past 2021-11-15; it doesn’t occur on nightly-2021-11-16 for me.

Can confirm @Dessix’s suggestion addresses the issue.

I get a proc macro "Error" not expanded message instead, I guess that’s expected behavior (?)

That means that the build data wasn’t fetched properly. The “Restart server” command usually fixes this for me. It didn’t happen when I tried it, the macro was expanded just fine.

When you say backtrace, do you mean an lsp.log like OP provided?

The OP contains what I’m looking for, yes. I’m not sure what lsp.log is, if that’s where rust-analyzer’s stderr ends up, then that’s where the stack backtrace should show up, yeah.

See also #10799.

For a couple of days we picked the 1.58 ABI for 1.57.