Closed
Description
The error occurs when running cargo expand
for https://github.com/rustype/proc-macro-workshop/blob/18f33a2bf2037f5b020dc508dfc9204467cb2ad5/main.rs
Code
Repository: https://github.com/rustype/proc-macro-workshop/tree/18f33a2bf2037f5b020dc508dfc9204467cb2ad5
extern crate proc_macro;
use proc_macro2::TokenStream;
use quote::quote;
use syn::parse_macro_input;
#[proc_macro_attribute]
pub fn sorted(
args: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
let _ = args;
let item = parse_macro_input!(input as syn::Item);
match parse_sorted(item) {
Ok(tt) => tt,
Err(err) => err.to_compile_error(),
}
.into()
}
fn parse_sorted(item: syn::Item) -> syn::Result<TokenStream> {
println!("{:#?}", item);
if let syn::Item::Enum(_) = item {
syn::Result::Ok(quote!(#item))
} else {
syn::Result::Err(syn::Error::new(
proc_macro2::Span::call_site(),
"expected enum or match expression",
))
}
}
Meta
rustc --version --verbose
:
rustc 1.50.0-nightly (f0f68778f 2020-12-09) running on x86_64-unknown-linux-gnu
Error output
thread 'rustc' panicked at 'Failed to recover key for type_of(44bb8dfde12fe5f2-84c94631772ec105) with hash 44bb8dfde12fe5f2-84c94631772ec105', compiler/rustc_middle/src/ty/query/mod.rs:235:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.50.0-nightly (f0f68778f 2020-12-09) running on x86_64-unknown-linux-gnu
note: compiler flags: -C prefer-dynamic -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type proc-macro
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
end of query stack
thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
left: `LLVMing`,
right: `Codegenning`', /rustc/f0f68778f798d6d34649745b41770829b17ba5b8/compiler/rustc_codegen_ssa/src/back/write.rs:1425:21
error: internal compiler error: unexpected panic
Backtrace
stack backtrace:
0: rust_begin_unwind
at /rustc/f0f68778f798d6d34649745b41770829b17ba5b8/library/std/src/panicking.rs:493:5
1: std::panicking::begin_panic_fmt
at /rustc/f0f68778f798d6d34649745b41770829b17ba5b8/library/std/src/panicking.rs:435:5
2: rustc_middle::ty::query::try_load_from_on_disk_cache::{{closure}}
3: rustc_middle::ty::query::try_load_from_on_disk_cache
4: rustc_query_system::dep_graph::graph::DepGraph<K>::exec_cache_promotions
5: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
6: rustc_incremental::persist::save::save_in
7: rustc_data_structures::sync::join
8: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
9: rustc_incremental::persist::save::save_dep_graph
10: rustc_codegen_ssa::base::finalize_tcx
11: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
12: rustc_session::utils::<impl rustc_session::session::Session>::time
13: rustc_interface::passes::QueryContext::enter
14: rustc_interface::queries::Queries::ongoing_codegen
15: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
16: rustc_span::with_source_map
17: rustc_interface::interface::create_compiler_and_run
18: scoped_tls::ScopedKey<T>::set