-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-ICEIssue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️
Description
Summary
This triggers an ICE as of nightly-2025-11-07:
// src/main.rs
#![warn(clippy::derivable_impls)]
#[macro_use]
mod macros;
my_enum!();
impl Default for Enum {
fn default() -> Self {
Enum::Variant
}
}
fn main() {}// src/macros.rs
macro_rules! my_enum {
() => {
pub enum Enum {
Variant,
}
};
}$ cargo clippy
thread 'rustc' (2243971) panicked at /rust/deps/annotate-snippets-0.12.8/src/renderer/source_map.rs:427:13:
Patch span `14..94` is beyond the end of buffer `14`
...I was unsure whether to report this here or in rust-lang/rust but it bisects to rust-lang/rust#148188. In nightly-2025-11-06 and older there is no ICE.
warning: this `impl` can be derived
--> src/main.rs:10:1
|
10 | / impl Default for Enum {
11 | | fn default() -> Self {
12 | | Enum::Variant
13 | | }
14 | | }
| |_^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls
note: the lint level is defined here
--> src/main.rs:3:9
|
3 | #![warn(clippy::derivable_impls)]
| ^^^^^^^^^^^^^^^^^^^^^^^Version
rustc 1.93.0-nightly (c90bcb957 2025-11-06)
binary: rustc
commit-hash: c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
commit-date: 2025-11-06
host: x86_64-unknown-linux-gnu
release: 1.93.0-nightly
LLVM version: 21.1.3
Error output
Backtrace
thread 'rustc' (2243971) panicked at /rust/deps/annotate-snippets-0.12.8/src/renderer/source_map.rs:427:13:
Patch span `14..94` is beyond the end of buffer `14`
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: annotate_snippets::renderer::render::render
3: <rustc_errors::annotate_snippet_emitter_writer::AnnotateSnippetEmitter>::emit_messages_default
4: <rustc_errors::annotate_snippet_emitter_writer::AnnotateSnippetEmitter as rustc_errors::emitter::Emitter>::emit_diagnostic
5: <rustc_errors::json::Diagnostic>::from_errors_diagnostic
6: <rustc_errors::json::JsonEmitter as rustc_errors::emitter::Emitter>::emit_diagnostic
7: <rustc_errors::DiagCtxtInner>::emit_diagnostic::{closure#3}
8: rustc_interface::callbacks::track_diagnostic::<core::option::Option<rustc_span::ErrorGuaranteed>>
9: <rustc_errors::DiagCtxtInner>::emit_diagnostic
10: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
11: <() as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
12: rustc_middle::lint::lint_level::lint_level_impl
13: clippy_lints::derivable_impls::check_enum
14: <clippy_lints::derivable_impls::DerivableImpls as rustc_lint::passes::LateLintPass>::check_item
15: <rustc_lint::late::LateContextAndPass<rustc_lint::late::RuntimeCombinedLateLintPass> as rustc_hir::intravisit::Visitor>::visit_nested_item
16: <rustc_lint::late::LateContextAndPass<rustc_lint::late::RuntimeCombinedLateLintPass>>::process_mod
17: rustc_lint::late::check_crate::{closure#0}
18: rustc_lint::late::check_crate
19: rustc_interface::passes::analysis
[... omitted 1 frame ...]
20: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
21: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml
note: please make sure that you have updated to the latest nightly
note: please attach the file at `/git/repro/rustc-ice-2025-11-07T03_14_26-2243970.txt` to your bug report
note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [analysis] running analysis passes on crate `repro`
end of query stack
note: Clippy version: clippy 0.1.93 (c90bcb9571 2025-11-06)
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-ICEIssue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️