Closed
Description
I have a trait with a repeat(&self)
function, implemented by various structs. This causes the repeat_once
check to panic with the stack trace below. Renaming the repeat function fixes this issue.
It seems the repeat_once check incorrectly assumes every repeat
function has the same signature.
thread 'rustc' panicked at 'index out of bounds: the len is 1 but the index is 1', src/tools/clippy/clippy_lints/src/repeat_once.rs:44:93
stack backtrace:
0: 0x10caffaf4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hfb2db7374ccd4d34
1: 0x10cb672ec - core::fmt::write::h7e381316a10f5e82
2: 0x10caf125b - std::io::Write::write_fmt::h53862e22ed93af5e
3: 0x10cb044b5 - std::panicking::default_hook::{{closure}}::h1a87f1c0565a051b
4: 0x10cb041f2 - std::panicking::default_hook::he29ab2038604c86f
5: 0x104eb8682 - clippy_driver::report_clippy_ice::hfe87e26afc670fc4
6: 0x10cb04bad - std::panicking::rust_panic_with_hook::h9dab6d214201c5da
7: 0x10cb0471b - std::panicking::begin_panic_handler::{{closure}}::hf4bcec37fb7265f5
8: 0x10cafff38 - std::sys_common::backtrace::__rust_end_short_backtrace::h8c49942bd9c628f8
9: 0x10cb046da - _rust_begin_unwind
10: 0x10cb8b41f - core::panicking::panic_fmt::hc5e2a0be1d842c94
11: 0x10cb8b3e6 - core::panicking::panic_bounds_check::h40dfc66b75b71880
12: 0x10507b8a5 - <clippy_lints::repeat_once::RepeatOnce as rustc_lint::passes::LateLintPass>::check_expr::hfe80f357b0d3beb2
13: 0x108f83e93 - <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_expr::h3d8b51a989d23dc7
14: 0x10591c1f7 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h0076165d2758ee24
15: 0x1058a3ffc - rustc_hir::intravisit::walk_expr::h7b17a835e0a1e689
16: 0x10591c202 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h0076165d2758ee24
17: 0x1058a413d - rustc_hir::intravisit::walk_expr::h7b17a835e0a1e689
18: 0x10591c202 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h0076165d2758ee24
19: 0x10591c54b - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_nested_body::h8949c7e4ab674644
20: 0x10591c828 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn::h1ca4d7f3f2d0156d
21: 0x1058a0cfc - rustc_hir::intravisit::walk_impl_item::hd3be12565657a6fe
22: 0x10591d839 - rustc_hir::intravisit::Visitor::visit_nested_impl_item::hc043f75299e9272d
23: 0x1058a5e9b - rustc_hir::intravisit::walk_item::hf65d3efac4c847ee
24: 0x10591ce6a - rustc_hir::intravisit::Visitor::visit_nested_item::h4a2c193a1e7c2deb
25: 0x1058a571d - rustc_hir::intravisit::walk_item::hf65d3efac4c847ee
26: 0x10591ce6a - rustc_hir::intravisit::Visitor::visit_nested_item::h4a2c193a1e7c2deb
27: 0x10589ffed - rustc_hir::intravisit::walk_crate::h5690f6fb1c3463a8
28: 0x10590510e - rustc_lint::late::late_lint_pass_crate::h8e9cf5758b61dcff
29: 0x105908a81 - rustc_session::utils::<impl rustc_session::session::Session>::time::h182bdff368aba700
30: 0x1059580e5 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h00f76374d4e840c0
31: 0x105909a1b - rustc_session::utils::<impl rustc_session::session::Session>::time::h24d2ade0b7ebf22a
32: 0x1059535db - rustc_interface::passes::analysis::h7e89637bc70aed1c
33: 0x1056cda6a - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute::h4aa47c2f3b3b8506
34: 0x10564d244 - rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps::hec5607f5fcd91fa5
35: 0x1056b7537 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::h81a818df1e17e349
36: 0x1056c2d40 - rustc_data_structures::stack::ensure_sufficient_stack::h36cbd81f9c66f217
37: 0x1056699c6 - rustc_query_system::query::plumbing::get_query_impl::h85de927e277c8177
38: 0x1056ce7c9 - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h5f267b10980944aa
39: 0x10567777e - rustc_span::with_source_map::h41746b5ad19cb6c9
40: 0x1056d0201 - rustc_interface::interface::create_compiler_and_run::hae2e250f665904c6
41: 0x1056b56b3 - scoped_tls::ScopedKey<T>::set::h6f614b62c5f7ab14
42: 0x1056c3e9f - std::sys_common::backtrace::__rust_begin_short_backtrace::h3e44a6eb413894f0
43: 0x10566483c - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4585fc2219a571d0
44: 0x10cb131cd - std::sys::unix::thread::Thread::new::thread_start::h39b071b0d2fb7aea
45: 0x7fff6f1f8109 - __pthread_start
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-clippy/issues/new
note: Clippy version: clippy 0.0.212 (de521cbb3 2020-08-21)
query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack