Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICE: path_to_string: called for lang item qpath author on for-loop #11134

Closed
matthiaskrgr opened this issue Jul 9, 2023 · 0 comments · Fixed by #11664
Closed

ICE: path_to_string: called for lang item qpath author on for-loop #11134

matthiaskrgr opened this issue Jul 9, 2023 · 0 comments · Fixed by #11664
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@matthiaskrgr
Copy link
Member

Summary

#![feature(stmt_expr_attributes)]
#![allow(clippy::never_loop, clippy::while_immutable_condition)]

fn main() {
    #[clippy::author]
    for i in 10..5 + 4 {
        println!("{}", i);
    }
}

Version

rustc 1.72.0-nightly (83964c156 2023-07-08)
binary: rustc
commit-hash: 83964c156db1f444050a38b2498dbd0da6d5d503
commit-date: 2023-07-08
host: x86_64-unknown-linux-gnu
release: 1.72.0-nightly
LLVM version: 16.0.5

Error output

Backtrace

if let Some(higher::ForLoop { pat: pat, arg: arg, body: body, .. }) = higher::ForLoop::hir(expr)
  && let PatKind::Binding(BindingAnnotation::NONE, _, name, None) = pat.kind
  && name.as_str() == "i"
  && let ExprKind::Struct(qpath, fields, None) = arg.kind
  && matches!(qpath, QPath::LangItem(LangItem::Range, _))
  && fields.len() == 2
  && fields[0].ident.as_str() == "start"
  && let ExprKind::Lit(ref lit) = fields[0].expr.kind
  && let LitKind::Int(10, LitIntType::Unsuffixed) = lit.node
  && fields[1].ident.as_str() == "end"
  && let ExprKind::Binary(op, left, right) = fields[1].expr.kind
  && BinOpKind::Add == op.node
  && let ExprKind::Lit(ref lit1) = left.kind
  && let LitKind::Int(5, LitIntType::Unsuffixed) = lit1.node
  && let ExprKind::Lit(ref lit2) = right.kind
  && let LitKind::Int(4, LitIntType::Unsuffixed) = lit2.node
  && let ExprKind::Block(block, None) = body.kind
  && block.stmts.len() == 1
  && let StmtKind::Semi(e) = block.stmts[0].kind
  && let ExprKind::Block(block1, None) = e.kind
  && block1.stmts.len() == 1
  && let StmtKind::Semi(e1) = block1.stmts[0].kind
  && let ExprKind::Call(func, args) = e1.kind
  && let ExprKind::Path(ref qpath1) = func.kind
  && match_qpath(qpath1, &["$crate", "io", "_print"])
  && args.len() == 1
  && let ExprKind::Call(func1, args1) = args[0].kind
  && let ExprKind::Path(ref qpath2) = func1.kind
thread 'rustc' panicked at 'path_to_string: called for lang item qpath', src/tools/clippy/clippy_lints/src/utils/author.rs:760:36
stack backtrace:
 0:     0x7ff9297e1a71 - std::backtrace_rs::backtrace::libunwind::trace::h4e1458b4a9fb4e6f
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
 1:     0x7ff9297e1a71 - std::backtrace_rs::backtrace::trace_unsynchronized::hab78200fa9cb4924
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
 2:     0x7ff9297e1a71 - std::sys_common::backtrace::_print_fmt::hcfea8b2400713c36
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys_common/backtrace.rs:65:5
 3:     0x7ff9297e1a71 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h3e59532c1e143911
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys_common/backtrace.rs:44:22
 4:     0x7ff929847d7f - core::fmt::rt::Argument::fmt::h9df7228410758d1a
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/core/src/fmt/rt.rs:138:9
 5:     0x7ff929847d7f - core::fmt::write::h8469ff0e5aa7b2a8
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/core/src/fmt/mod.rs:1094:21
 6:     0x7ff9297d44b7 - std::io::Write::write_fmt::hf942e53f0bebad10
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/io/mod.rs:1714:15
 7:     0x7ff9297e1885 - std::sys_common::backtrace::_print::hb60701aae549e88f
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys_common/backtrace.rs:47:5
 8:     0x7ff9297e1885 - std::sys_common::backtrace::print::h5a926053ebf6acdd
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys_common/backtrace.rs:34:9
 9:     0x7ff9297e4663 - std::panicking::default_hook::{{closure}}::h9cb2c77fd9d08a16
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/panicking.rs:269:22
10:     0x7ff9297e43f4 - std::panicking::default_hook::hc22d719f1e0a6564
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/panicking.rs:288:9
11:     0x7ff928647c6b - rustc_driver_impl[2d6a85f1efddecb1]::install_ice_hook::{closure#0}
12:     0x7ff9297e4e8e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h05534b3187a63b37
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/alloc/src/boxed.rs:2007:9
13:     0x7ff9297e4e8e - std::panicking::rust_panic_with_hook::h548300ff41a99ca1
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/panicking.rs:709:13
14:     0x7ff9297e4bd1 - std::panicking::begin_panic_handler::{{closure}}::h34bacd700ea87498
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/panicking.rs:595:13
15:     0x7ff9297e1ed6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf013c7b08177d5b2
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys_common/backtrace.rs:151:18
16:     0x7ff9297e4962 - rust_begin_unwind
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/panicking.rs:593:5
17:     0x7ff929843fd3 - core::panicking::panic_fmt::h0ab5243df958a0f7
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/core/src/panicking.rs:67:14
18:     0x564c5c36d58d - clippy_lints[5250119efe64ef1f]::utils::author::path_to_string::inner
19:     0x564c5c36d247 - clippy_lints[5250119efe64ef1f]::utils::author::path_to_string::inner
20:     0x564c5c364dd9 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::qpath
21:     0x564c5c367e39 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
22:     0x564c5c366a36 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
23:     0x564c5c364365 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::slice::<rustc_hir[30866afef9a6ad3a]::hir::Expr, <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr::{closure#2}>
24:     0x564c5c366a49 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
25:     0x564c5c36cf4f - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::stmt
26:     0x564c5c3699a5 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::block
27:     0x564c5c3679a9 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
28:     0x564c5c36cf4f - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::stmt
29:     0x564c5c3699a5 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::block
30:     0x564c5c3679a9 - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
31:     0x564c5c36658c - <clippy_lints[5250119efe64ef1f]::utils::author::PrintVisitor>::expr
32:     0x564c5c3633e1 - <clippy_lints[5250119efe64ef1f]::utils::author::Author as rustc_lint[45bcffbddee15b5]::passes::LateLintPass>::check_expr
33:     0x7ff928a486b6 - <rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass as rustc_lint[45bcffbddee15b5]::passes::LateLintPass>::check_expr
34:     0x7ff928a24d56 - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass>>::with_lint_attrs::<<rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0}>
35:     0x7ff928a25d0c - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_expr
36:     0x7ff928a25e19 - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_block
37:     0x7ff928a24d61 - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass>>::with_lint_attrs::<<rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0}>
38:     0x7ff928a25d0c - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_expr
39:     0x7ff928a26165 - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_nested_body
40:     0x7ff928a2634a - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_fn
41:     0x7ff9289fd593 - rustc_hir[30866afef9a6ad3a]::intravisit::walk_item::<rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass>>
42:     0x7ff928a26a97 - <rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass> as rustc_hir[30866afef9a6ad3a]::intravisit::Visitor>::visit_nested_item
43:     0x7ff9289fcd58 - rustc_hir[30866afef9a6ad3a]::intravisit::walk_mod::<rustc_lint[45bcffbddee15b5]::late::LateContextAndPass<rustc_lint[45bcffbddee15b5]::late::RuntimeCombinedLateLintPass>>
44:     0x7ff927ab2a5e - rustc_lint[45bcffbddee15b5]::late::late_lint_crate::<rustc_lint[45bcffbddee15b5]::BuiltinCombinedLateLintPass>
45:     0x7ff927ab1ea8 - <rustc_session[d2c5967be8e6b8f9]::session::Session>::time::<(), rustc_lint[45bcffbddee15b5]::late::check_crate<rustc_lint[45bcffbddee15b5]::BuiltinCombinedLateLintPass, rustc_interface[b053cddf22540e47]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>
46:     0x7ff927ab1d43 - <rustc_session[d2c5967be8e6b8f9]::session::Session>::time::<(), rustc_interface[b053cddf22540e47]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}>
47:     0x7ff927ab187f - <core[29b2b76cf1b48b36]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[b053cddf22540e47]::passes::analysis::{closure#5}::{closure#1}> as core[29b2b76cf1b48b36]::ops::function::FnOnce<()>>::call_once
48:     0x7ff927ab12a0 - <rustc_session[d2c5967be8e6b8f9]::session::Session>::time::<(), rustc_interface[b053cddf22540e47]::passes::analysis::{closure#5}>
49:     0x7ff927aafdb7 - rustc_interface[b053cddf22540e47]::passes::analysis
50:     0x7ff927b0e68a - rustc_query_impl[26d2ebf6b1d6d4c2]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[26d2ebf6b1d6d4c2]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1f0c398aabd4ddf9]::query::erase::Erased<[u8; 1usize]>>
51:     0x7ff927b0e679 - <rustc_query_impl[26d2ebf6b1d6d4c2]::query_impl::analysis::dynamic_query::{closure#2} as core[29b2b76cf1b48b36]::ops::function::FnOnce<(rustc_middle[1f0c398aabd4ddf9]::ty::context::TyCtxt, ())>>::call_once
52:     0x7ff927ca3168 - rustc_query_system[c6699240e700ffe8]::query::plumbing::try_execute_query::<rustc_query_impl[26d2ebf6b1d6d4c2]::DynamicConfig<rustc_query_system[c6699240e700ffe8]::query::caches::SingleCache<rustc_middle[1f0c398aabd4ddf9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[26d2ebf6b1d6d4c2]::plumbing::QueryCtxt, false>
53:     0x7ff927ca2f39 - rustc_query_impl[26d2ebf6b1d6d4c2]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
54:     0x7ff927851b25 - <rustc_middle[1f0c398aabd4ddf9]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>
55:     0x7ff927851152 - <rustc_interface[b053cddf22540e47]::interface::Compiler>::enter::<rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}::{closure#2}, core[29b2b76cf1b48b36]::result::Result<core[29b2b76cf1b48b36]::option::Option<rustc_interface[b053cddf22540e47]::queries::Linker>, rustc_span[2315e69a6c645816]::ErrorGuaranteed>>
56:     0x7ff92784a2a5 - rustc_span[2315e69a6c645816]::set_source_map::<core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>, rustc_interface[b053cddf22540e47]::interface::run_compiler<core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>, rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
57:     0x7ff927849d16 - <scoped_tls[b9dcc93a263bd177]::ScopedKey<rustc_span[2315e69a6c645816]::SessionGlobals>>::set::<rustc_interface[b053cddf22540e47]::interface::run_compiler<core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>, rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}>::{closure#0}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>
58:     0x7ff9278492dc - std[1ede75a6519e9681]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[b053cddf22540e47]::util::run_in_thread_pool_with_globals<rustc_interface[b053cddf22540e47]::interface::run_compiler<core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>, rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}>::{closure#0}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>
59:     0x7ff9278490a5 - <<std[1ede75a6519e9681]::thread::Builder>::spawn_unchecked_<rustc_interface[b053cddf22540e47]::util::run_in_thread_pool_with_globals<rustc_interface[b053cddf22540e47]::interface::run_compiler<core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>, rustc_driver_impl[2d6a85f1efddecb1]::run_compiler::{closure#1}>::{closure#0}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[29b2b76cf1b48b36]::result::Result<(), rustc_span[2315e69a6c645816]::ErrorGuaranteed>>::{closure#1} as core[29b2b76cf1b48b36]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
60:     0x7ff9297ef305 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h8fa82afee072a41e
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/alloc/src/boxed.rs:1993:9
61:     0x7ff9297ef305 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h99bb2872d0c67e87
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/alloc/src/boxed.rs:1993:9
62:     0x7ff9297ef305 - std::sys::unix::thread::Thread::new::thread_start::h51979755696e7814
                             at /rustc/83964c156db1f444050a38b2498dbd0da6d5d503/library/std/src/sys/unix/thread.rs:108:17
63:     0x7ff92517744b - <unknown>
64:     0x7ff9251fae40 - <unknown>
65:                0x0 - <unknown>

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

note: rustc 1.72.0-nightly (83964c156 2023-07-08) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
note: Clippy version: clippy 0.1.72 (83964c1 2023-07-08)

@matthiaskrgr matthiaskrgr added C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️ labels Jul 9, 2023
@koka831 koka831 mentioned this issue Oct 13, 2023
@bors bors closed this as completed in c40359d Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant