rust-lang / rust-clippy

A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
https://rust-lang.github.io/rust-clippy/
Other
11.36k stars 1.53k forks source link

ICE: `attempted .def_id() on invalid res: Local(HirId(DefId(..).63))` #12616

Closed chitoyuu closed 6 months ago

chitoyuu commented 6 months ago

Summary

ICE occured when running clippy for the gdnative-core crate.

Version

rustc 1.77.1 (7cf61ebde 2024-03-27)
binary: rustc
commit-hash: 7cf61ebde7b22796c69757901dd346d0fe70bd97
commit-date: 2024-03-27
host: x86_64-unknown-linux-gnu
release: 1.77.1
LLVM version: 17.0.6

Error output

Backtrace

``` thread 'rustc' panicked at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/compiler/rustc_hir/src/def.rs:645:45: attempted .def_id() on invalid res: Local(HirId(DefId(0:3277 ~ gdnative_core[f33c]::object::{impl#6}::by_class_name).63)) stack backtrace: 0: rust_begin_unwind at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 1: core::panicking::panic_fmt at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 2: ::def_id 3: clippy_lints::casts::ptr_as_ptr::check 4: ::check_expr 5: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 6: as rustc_hir::intravisit::Visitor>::visit_expr 7: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 8: as rustc_hir::intravisit::Visitor>::visit_expr 9: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 10: as rustc_hir::intravisit::Visitor>::visit_expr 11: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 12: as rustc_hir::intravisit::Visitor>::visit_expr 13: as rustc_hir::intravisit::Visitor>::visit_block 14: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 15: as rustc_hir::intravisit::Visitor>::visit_expr 16: as rustc_hir::intravisit::Visitor>::visit_block 17: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0} 18: as rustc_hir::intravisit::Visitor>::visit_expr 19: as rustc_hir::intravisit::Visitor>::visit_nested_body 20: as rustc_hir::intravisit::Visitor>::visit_fn 21: as rustc_hir::intravisit::Visitor>::visit_item 22: as rustc_hir::intravisit::Visitor>::visit_mod 23: as rustc_hir::intravisit::Visitor>::visit_item 24: as rustc_hir::intravisit::Visitor>::visit_mod 25: rustc_lint::late::check_crate 26: rustc_interface::passes::analysis [... omitted 1 frame ...] 27: rustc_interface::interface::run_compiler::, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0} ```

y21 commented 6 months ago

MCVE:

fn main() {
  let s = std::ptr::null;
  s() as *const ();
}

Playground