Skip to content

Panic 'entered unreachable code' with nightly rustc #13470

@MForster

Description

@MForster

Rust analyzer panics when using nightly rustc:

rust-analyzer version: 0.3.1248-standalone
rustc version: rustc 1.63.0-nightly (fee3a45 2022-06-05)

I've confirmed that it works with stable rustc.

thread 'before' panicked at 'internal error: entered unreachable code', crates/proc-macro-srv/src/abis/abi_1_63/proc_macro/bridge/mod.rs:261:5
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:142:14
   2: core::panicking::panic
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:48:5
   3: <proc_macro_srv::abis::abi_1_63::proc_macro::bridge::api_tags::Method as proc_macro_srv::abis::abi_1_63::proc_macro::bridge::rpc::DecodeMut<S>>::decode
   4: <proc_macro_srv::abis::abi_1_63::proc_macro::bridge::server::Dispatcher<proc_macro_srv::abis::abi_1_63::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv::abis::abi_1_63::proc_macro::bridge::server::DispatcherTrait>::dispatch
   5: <proc_macro_srv::abis::abi_1_63::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/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/closure.rs:30:18
   7: proc_macro::bridge::client::Span::call_site::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:263:27
   8: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:355:47
   9: proc_macro::bridge::client::BridgeState::with::{{closure}}::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:312:17
  10: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/scoped_cell.rs:74:9
  11: proc_macro::bridge::client::BridgeState::with::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:310:13
  12: std::thread::local::LocalKey<T>::try_with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/thread/local.rs:445:16
  13: std::thread::local::LocalKey<T>::with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/thread/local.rs:421:9
  14: proc_macro::bridge::client::BridgeState::with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:309:9
  15: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:348:9
  16: proc_macro::bridge::client::Span::call_site
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:256:17
  17: proc_macro::Span::call_site
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/lib.rs:347:14
  18: rustversion::expand::try_cfg
             at /home/mforster/.cargo/registry/src/github.com-1ecc6299db9ec823/rustversion-1.0.9/src/expand.rs:12:45
  19: rustversion::expand::cfg
             at /home/mforster/.cargo/registry/src/github.com-1ecc6299db9ec823/rustversion-1.0.9/src/expand.rs:8:5
  20: rustversion::before
             at /home/mforster/.cargo/registry/src/github.com-1ecc6299db9ec823/rustversion-1.0.9/src/lib.rs:209:5
  21: core::ops::function::Fn::call
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/core/src/ops/function.rs:77:5
  22: proc_macro::bridge::client::Client<(proc_macro::TokenStream,proc_macro::TokenStream),proc_macro::TokenStream>::expand2::{{closure}}::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:453:21
  23: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:407:26
  24: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/scoped_cell.rs:79:33
  25: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/scoped_cell.rs:74:9
  26: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/scoped_cell.rs:79:9
  27: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:344:35
  28: std::thread::local::LocalKey<T>::try_with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/thread/local.rs:445:16
  29: std::thread::local::LocalKey<T>::with
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/thread/local.rs:421:9
  30: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:344:9
  31: proc_macro::bridge::client::run_client::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:400:9
  32: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/core/src/panic/unwind_safe.rs:271:9
  33: std::panicking::try::do_call
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/panicking.rs:492:40
  34: __rust_try
  35: std::panicking::try
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/panicking.rs:456:19
  36: std::panic::catch_unwind
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/std/src/panic.rs:137:14
  37: proc_macro::bridge::client::run_client
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:399:5
  38: proc_macro::bridge::client::Client<(proc_macro::TokenStream,proc_macro::TokenStream),proc_macro::TokenStream>::expand2::{{closure}}
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/client.rs:452:17
  39: proc_macro::bridge::selfless_reify::reify_to_extern_c_fn_hrt_bridge::wrapper
             at /rustc/fee3a459dd6aba8e34a5b99f0fbcb4218a1e2401/library/proc_macro/src/bridge/selfless_reify.rs:64:17
  40: proc_macro_srv::abis::abi_1_63::proc_macro::bridge::server::run_server
  41: proc_macro_srv::abis::abi_1_63::proc_macro::bridge::server::<impl proc_macro_srv::abis::abi_1_63::proc_macro::bridge::client::Client<(proc_macro_srv::abis::abi_1_63::proc_macro::TokenStream,proc_macro_srv::abis::abi_1_63::proc_macro::TokenStream),proc_macro_srv::abis::abi_1_63::proc_macro::TokenStream>>::run
  42: proc_macro_srv::abis::abi_1_63::Abi::expand
  43: proc_macro_srv::dylib::Expander::expand
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions