Closed
Description
Code
pub trait Trait {
fn f();
}
macro_rules! repro {
($ty:ty) => {
impl Trait for $ty {
fn f() {
extern "C" {
fn _f() -> $ty;
}
}
}
};
}
repro!(usize);
Meta
cargo clippy -V
: clippy 0.1.55 (798baeb 2021-07-02)rustc -Vv
:rustc 1.55.0-nightly (798baebde 2021-07-02) binary: rustc commit-hash: 798baebde1fe77e5a660490ec64e727a5d79970d commit-date: 2021-07-02 host: x86_64-unknown-linux-gnu release: 1.55.0-nightly LLVM version: 12.0.1
Error output
thread 'rustc' panicked at '`LateContext::typeck_results` called outside of body', src/tools/clippy/clippy_lints/src/use_self.rs:213:20
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.
query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
Backtrace
0: rust_begin_unwind
at /rustc/798baebde1fe77e5a660490ec64e727a5d79970d/library/std/src/panicking.rs:515:5
1: core::panicking::panic_fmt
at /rustc/798baebde1fe77e5a660490ec64e727a5d79970d/library/core/src/panicking.rs:92:14
2: core::option::expect_failed
at /rustc/798baebde1fe77e5a660490ec64e727a5d79970d/library/core/src/option.rs:1243:5
3: rustc_lint::context::LateContext::typeck_results
4: <clippy_lints::use_self::UseSelf as rustc_lint::passes::LateLintPass>::check_ty
5: <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_ty
6: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_ty
7: rustc_hir::intravisit::walk_foreign_item
8: rustc_hir::intravisit::Visitor::visit_nested_foreign_item
9: rustc_hir::intravisit::walk_foreign_item_ref
10: rustc_hir::intravisit::walk_item
11: rustc_hir::intravisit::Visitor::visit_nested_item
12: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_stmt
13: rustc_hir::intravisit::walk_block
14: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_block
15: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr
16: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_nested_body
17: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn
18: rustc_hir::intravisit::walk_impl_item
19: rustc_hir::intravisit::Visitor::visit_nested_impl_item
20: rustc_hir::intravisit::walk_impl_item_ref
21: rustc_hir::intravisit::walk_item
22: rustc_hir::intravisit::Visitor::visit_nested_item
23: rustc_hir::intravisit::walk_mod
24: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_mod
25: rustc_hir::intravisit::walk_crate
26: rustc_lint::late::late_lint_pass_crate
27: rustc_lint::late::late_lint_crate
28: rustc_data_structures::sync::join
29: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
30: rustc_session::utils::<impl rustc_session::session::Session>::time
31: rustc_interface::passes::analysis
32: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
33: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
34: rustc_query_system::dep_graph::graph::DepGraph<K>::with_eval_always_task
35: rustc_data_structures::stack::ensure_sufficient_stack
36: rustc_query_system::query::plumbing::force_query_with_job
37: rustc_query_system::query::plumbing::get_query_impl
38: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
39: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
40: rustc_span::with_source_map
41: rustc_interface::interface::create_compiler_and_run
42: scoped_tls::ScopedKey<T>::set
Mentioning @camsteffen @flip1995 who touched this lint recently in #7411.