Closed
Description
While working on a new feature for Diesel, one of the changes caused the compiler to start ICEing on beta and nightly. The code works fine on stable. The branch is https://github.com/diesel-rs/diesel/compare/sg-rust-bug
I'm still trying to pin down what specifically caused the ICE. The crash happens before it actually gets to the custom derive at all, so it seems that just adding #[derive(ValidGrouping)]
to one of those types caused it. Here's the backtrace:
thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:335:21
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
1: std::sys_common::backtrace::_print
2: std::panicking::default_hook::{{closure}}
3: std::panicking::default_hook
4: std::panicking::rust_panic_with_hook
5: std::panicking::begin_panic
6: std::panicking::begin_panic_fmt
7: rust_begin_unwind
8: core::panicking::panic_fmt
9: core::panicking::panic
10: rustc_resolve::build_reduced_graph::<impl rustc_resolve::Resolver<'a>>::get_module
11: rustc_resolve::macros::<impl syntax::ext::base::Resolver for rustc_resolve::Resolver<'a>>::resolve_invoc
12: syntax::ext::expand::MacroExpander::expand
13: syntax::ext::expand::MacroExpander::expand_crate
14: rustc_driver::driver::phase_2_configure_and_expand_inner::{{closure}}
15: rustc_driver::driver::phase_2_configure_and_expand_inner
16: rustc_driver::driver::compile_input
17: rustc_driver::run_compiler
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/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.25.0-beta.7 (da64ca931 2018-03-03) running on x86_64-apple-darwin
Metadata
Metadata
Assignees
Labels
Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Category: This is a bug.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️High priorityRelevant to the compiler team, which will review and decide on the PR/issue.Performance or correctness regression from stable to beta.