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

unexpected panic 'Normalizing Binder(ProjectionPredicate(...))` #9922

Closed
niklasad1 opened this issue Nov 21, 2022 · 3 comments
Closed

unexpected panic 'Normalizing Binder(ProjectionPredicate(...))` #9922

niklasad1 opened this issue Nov 21, 2022 · 3 comments
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@niklasad1
Copy link

Summary

Reproduce a follows:

$ git checkout https://github.com/paritytech/jsonrpsee && cd jsonrpsee
$ git checkout 82113dc267db83ea9e63583a19c68bcab3f767d8
$ cargo +nightly clippy --all-targets

Version

rustc 1.67.0-nightly (a28f3c88e 2022-11-20)
binary: rustc
commit-hash: a28f3c88e50a77bc2a91889241248c4543854e61
commit-date: 2022-11-20
host: x86_64-unknown-linux-gnu
release: 1.67.0-nightly
LLVM version: 15.0.4

Error output

Backtrace

thread '<unnamed>' panicked at 'Normalizing Binder(ProjectionPredicate(ProjectionTy { substs: [impl futures_util::Future<Output = std::result::Result<std::string::String, std::boxed::Box<(dyn std::error::Error + 'static)>>>], item_def_id: DefId(2:14186 ~ core[d483]::future::future::Future::Output) }, Term::Ty(std::result::Result<std::string::String, std::boxed::Box<dyn std::error::Error>>)), []) without wrapping in a `Binder`', compiler/rustc_trait_selection/src/traits/project.rs:450:9
stack backtrace:
 0:     0x7fbe17f66210 - std::backtrace_rs::backtrace::libunwind::trace::heb7a33f2fe285dd9
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
 1:     0x7fbe17f66210 - std::backtrace_rs::backtrace::trace_unsynchronized::hdd483bbded009146
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
 2:     0x7fbe17f66210 - std::sys_common::backtrace::_print_fmt::h66820ec1712881f4
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys_common/backtrace.rs:65:5
 3:     0x7fbe17f66210 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd2c196610029335c
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys_common/backtrace.rs:44:22
 4:     0x7fbe17fc863e - core::fmt::write::h2ca7d8a2085ff483
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/core/src/fmt/mod.rs:1208:17
 5:     0x7fbe17f56595 - std::io::Write::write_fmt::h12e70db3eb3892cf
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/io/mod.rs:1682:15
 6:     0x7fbe17f65fd5 - std::sys_common::backtrace::_print::h34ed3ab353b4c6af
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys_common/backtrace.rs:47:5
 7:     0x7fbe17f65fd5 - std::sys_common::backtrace::print::h6c57f031c456c068
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys_common/backtrace.rs:34:9
 8:     0x7fbe17f68cdf - std::panicking::default_hook::{{closure}}::hec2c128303361806
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:267:22
 9:     0x7fbe17f68a1a - std::panicking::default_hook::hd13da34753ba960b
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:286:9
10:     0x56372b7a7b60 - clippy_driver[17dda49c37879e0b]::ICE_HOOK::{closure#0}::{closure#0}
11:     0x7fbe17f6950d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h216311a9e3952096
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/alloc/src/boxed.rs:2032:9
12:     0x7fbe17f6950d - std::panicking::rust_panic_with_hook::h73ea3535d824209e
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:692:13
13:     0x7fbe17f69287 - std::panicking::begin_panic_handler::{{closure}}::hd671ecd225a3dd76
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:579:13
14:     0x7fbe17f666bc - std::sys_common::backtrace::__rust_end_short_backtrace::hfb14ec03ea3b23c0
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys_common/backtrace.rs:137:18
15:     0x7fbe17f68fa2 - rust_begin_unwind
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:575:5
16:     0x7fbe17fc5013 - core::panicking::panic_fmt::h60d6645d301b37b5
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/core/src/panicking.rs:65:14
17:     0x7fbe194815fb - <rustc_trait_selection[c61c6c33e7c4a32c]::traits::select::SelectionContext>::confirm_candidate
18:     0x7fbe19b65585 - <rustc_trait_selection[c61c6c33e7c4a32c]::traits::select::SelectionContext>::evaluate_stack
19:     0x7fbe19da9ff7 - <rustc_trait_selection[c61c6c33e7c4a32c]::traits::select::SelectionContext>::evaluate_predicate_recursively
20:     0x7fbe19904137 - rustc_traits[dddda32dd06c66df]::evaluate_obligation::evaluate_obligation
21:     0x7fbe19901d88 - rustc_query_system[8d6e95109f3d85ae]::query::plumbing::get_query::<rustc_query_impl[f9274d723e979a80]::queries::evaluate_obligation, rustc_query_impl[f9274d723e979a80]::plumbing::QueryCtxt>
22:     0x7fbe19a5e87d - <rustc_infer[b151f6815a74fc67]::infer::InferCtxt as rustc_trait_selection[c61c6c33e7c4a32c]::traits::query::evaluate_obligation::InferCtxtExt>::predicate_must_hold_modulo_regions
23:     0x56372b7f5a76 - <core[d4837f3c8a20a9c3]::iter::adapters::copied::Copied<core[d4837f3c8a20a9c3]::slice::iter::Iter<rustc_middle[f366153565d5d77d]::ty::Predicate>> as core[d4837f3c8a20a9c3]::iter::traits::iterator::Iterator>::try_fold::<(), core[d4837f3c8a20a9c3]::iter::adapters::filter::filter_try_fold<rustc_middle[f366153565d5d77d]::ty::Predicate, (), core[d4837f3c8a20a9c3]::ops::control_flow::ControlFlow<()>, clippy_lints[b51e4f2e903f4319]::methods::unnecessary_to_owned::can_change_type::{closure#5}, core[d4837f3c8a20a9c3]::iter::traits::iterator::Iterator::any::check<rustc_middle[f366153565d5d77d]::ty::Predicate, clippy_lints[b51e4f2e903f4319]::methods::unnecessary_to_owned::can_change_type::{closure#7}>::{closure#0}>::{closure#0}, core[d4837f3c8a20a9c3]::ops::control_flow::ControlFlow<()>>
24:     0x56372ba3e4cb - clippy_lints[b51e4f2e903f4319]::methods::unnecessary_to_owned::can_change_type
25:     0x56372ba3d372 - clippy_lints[b51e4f2e903f4319]::methods::unnecessary_to_owned::check
26:     0x56372b933c66 - <clippy_lints[b51e4f2e903f4319]::methods::Methods as rustc_lint[d23633d1eb413efe]::passes::LateLintPass>::check_expr
27:     0x7fbe1b57f654 - <rustc_lint[d23633d1eb413efe]::early::EarlyLintPassObjects as rustc_lint[d23633d1eb413efe]::passes::EarlyLintPass>::check_generic_arg
28:     0x7fbe1b52b923 - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
29:     0x7fbe1b5432fa - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
30:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
31:     0x7fbe1b5432de - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
32:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
33:     0x7fbe1b5432a9 - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
34:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
35:     0x7fbe1b54338a - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
36:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
37:     0x7fbe1b5432de - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
38:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
39:     0x7fbe1b5432de - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
40:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
41:     0x7fbe1b541f8b - rustc_hir[5773f6caf240b13a]::intravisit::walk_local::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
42:     0x7fbe1b52bafe - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_local
43:     0x7fbe1b541f3a - rustc_hir[5773f6caf240b13a]::intravisit::walk_block::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
44:     0x7fbe1b52ba79 - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_block
45:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
46:     0x7fbe1b52bdbc - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_nested_body
47:     0x7fbe1b52bfb9 - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_fn
48:     0x7fbe1b543416 - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
49:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
50:     0x7fbe1b5432a9 - rustc_hir[5773f6caf240b13a]::intravisit::walk_expr::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
51:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
52:     0x7fbe1b541f8b - rustc_hir[5773f6caf240b13a]::intravisit::walk_local::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
53:     0x7fbe1b52bafe - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_local
54:     0x7fbe1b541f3a - rustc_hir[5773f6caf240b13a]::intravisit::walk_block::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
55:     0x7fbe1b52ba79 - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_block
56:     0x7fbe1b52b92e - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_expr
57:     0x7fbe1b52bdbc - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_nested_body
58:     0x7fbe1b52bfb9 - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_fn
59:     0x7fbe1b5435dd - rustc_hir[5773f6caf240b13a]::intravisit::walk_item::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
60:     0x7fbe1b52c53f - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_nested_item
61:     0x7fbe1b542f77 - rustc_hir[5773f6caf240b13a]::intravisit::walk_mod::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
62:     0x7fbe1b52c53f - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_nested_item
63:     0x7fbe1b542f77 - rustc_hir[5773f6caf240b13a]::intravisit::walk_mod::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
64:     0x7fbe1b52c53f - <rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects> as rustc_hir[5773f6caf240b13a]::intravisit::Visitor>::visit_nested_item
65:     0x7fbe1b542f77 - rustc_hir[5773f6caf240b13a]::intravisit::walk_mod::<rustc_lint[d23633d1eb413efe]::late::LateContextAndPass<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>>
66:     0x7fbe1b52b553 - rustc_lint[d23633d1eb413efe]::late::late_lint_pass_crate::<rustc_lint[d23633d1eb413efe]::late::LateLintPassObjects>
67:     0x7fbe1a8c506e - rustc_lint[d23633d1eb413efe]::late::late_lint_crate::<rustc_lint[d23633d1eb413efe]::BuiltinCombinedLateLintPass>
68:     0x7fbe1a8c43dc - <rustc_session[b4e9c942712cd38d]::session::Session>::time::<(), rustc_lint[d23633d1eb413efe]::late::check_crate<rustc_lint[d23633d1eb413efe]::BuiltinCombinedLateLintPass, rustc_interface[ae1f079bdc82f0f4]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>
69:     0x7fbe1a8c424f - <rustc_session[b4e9c942712cd38d]::session::Session>::time::<(), rustc_interface[ae1f079bdc82f0f4]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}>
70:     0x7fbe1a8adc0f - <core[d4837f3c8a20a9c3]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ae1f079bdc82f0f4]::passes::analysis::{closure#5}::{closure#1}> as core[d4837f3c8a20a9c3]::ops::function::FnOnce<()>>::call_once
71:     0x7fbe1960b627 - <rustc_session[b4e9c942712cd38d]::session::Session>::time::<(), rustc_interface[ae1f079bdc82f0f4]::passes::analysis::{closure#5}>
72:     0x7fbe19607ba6 - rustc_interface[ae1f079bdc82f0f4]::passes::analysis
73:     0x7fbe1a9f85fe - <rustc_query_system[8d6e95109f3d85ae]::dep_graph::graph::DepGraph<rustc_middle[f366153565d5d77d]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[f366153565d5d77d]::ty::context::TyCtxt, (), core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>
74:     0x7fbe1a9f7974 - rustc_query_system[8d6e95109f3d85ae]::query::plumbing::try_execute_query::<rustc_query_impl[f9274d723e979a80]::plumbing::QueryCtxt, rustc_query_system[8d6e95109f3d85ae]::query::caches::DefaultCache<(), core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>>
75:     0x7fbe1a9f73f7 - rustc_query_system[8d6e95109f3d85ae]::query::plumbing::get_query::<rustc_query_impl[f9274d723e979a80]::queries::analysis, rustc_query_impl[f9274d723e979a80]::plumbing::QueryCtxt>
76:     0x7fbe1a4b493d - <rustc_interface[ae1f079bdc82f0f4]::passes::QueryContext>::enter::<rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>
77:     0x7fbe1a4b0b7f - <rustc_interface[ae1f079bdc82f0f4]::interface::Compiler>::enter::<rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}::{closure#2}, core[d4837f3c8a20a9c3]::result::Result<core[d4837f3c8a20a9c3]::option::Option<rustc_interface[ae1f079bdc82f0f4]::queries::Linker>, rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>
78:     0x7fbe1a4abbb2 - rustc_span[9f4111115c4fed]::with_source_map::<core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>, rustc_interface[ae1f079bdc82f0f4]::interface::run_compiler<core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>, rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}>::{closure#0}::{closure#1}>
79:     0x7fbe1a4ab6a9 - <scoped_tls[ae5b04190739cce1]::ScopedKey<rustc_span[9f4111115c4fed]::SessionGlobals>>::set::<rustc_interface[ae1f079bdc82f0f4]::interface::run_compiler<core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>, rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}>::{closure#0}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>
80:     0x7fbe1a4aacb8 - std[19ca63742693b6d]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[ae1f079bdc82f0f4]::util::run_in_thread_pool_with_globals<rustc_interface[ae1f079bdc82f0f4]::interface::run_compiler<core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>, rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}>::{closure#0}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>
81:     0x7fbe1a4aa9dc - <<std[19ca63742693b6d]::thread::Builder>::spawn_unchecked_<rustc_interface[ae1f079bdc82f0f4]::util::run_in_thread_pool_with_globals<rustc_interface[ae1f079bdc82f0f4]::interface::run_compiler<core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>, rustc_driver[9703e99ec73861cf]::run_compiler::{closure#1}>::{closure#0}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[d4837f3c8a20a9c3]::result::Result<(), rustc_errors[76181ab7b3254ac7]::ErrorGuaranteed>>::{closure#1} as core[d4837f3c8a20a9c3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
82:     0x7fbe1bf95893 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha6912b1affeedc9f
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/alloc/src/boxed.rs:2000:9
83:     0x7fbe1bf95893 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h3ca4ddbfb732ff99
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/alloc/src/boxed.rs:2000:9
84:     0x7fbe1bf95893 - std::sys::unix::thread::Thread::new::thread_start::ha349c7e697b17ac9
                             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/sys/unix/thread.rs:108:17
85:     0x7fbe17c1f8fd - <unknown>
86:     0x7fbe17ca1a60 - <unknown>
87:                0x0 - <unknown>

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.1.66 (a28f3c8 2022-11-20)

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `impl core::future::future::Future<Output = core::result::Result<alloc::string::String, alloc::boxed::Box<(dyn core::error::Error + 'static)>>>: jsonrpsee_test_utils::TimeoutFutureExt<core::result::Result<alloc::string::String, alloc::boxed::Box<dyn core::error::Error>>>`
#1 [analysis] running analysis passes on this crate
end of query stack

@niklasad1 niklasad1 added C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️ labels Nov 21, 2022
@niklasad1 niklasad1 changed the title unexpected panic in library jsonrpsee unexpected 'Normalizing Binder(ProjectionPredicate(...))` Nov 21, 2022
@niklasad1 niklasad1 changed the title unexpected 'Normalizing Binder(ProjectionPredicate(...))` unexpected panic 'Normalizing Binder(ProjectionPredicate(...))` Nov 21, 2022
@smoelius
Copy link
Contributor

Backtrace with line numbers on 51ec465:

Backtrace
thread 'rustc' panicked at 'Normalizing Binder(ProjectionPredicate(ProjectionTy { substs: [impl futures_util::Future<Output = std::result::Result<std::string::String, std::boxed::Box<(dyn std::error::Error + 'static)>>>], item_def_id: DefId(2:14037 ~ core[b141]::future::future::Future::Output) }, Term::Ty(std::result::Result<std::string::String, std::boxed::Box<dyn std::error::Error>>)), []) without wrapping in a `Binder`', compiler/rustc_trait_selection/src/traits/project.rs:450:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/panicking.rs:65:14
   2: <rustc_trait_selection::traits::select::SelectionContext>::confirm_candidate
   3: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_stack
   4: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_predicate_recursively
   5: <rustc_trait_selection::traits::select::SelectionContext>::evaluate_root_obligation
   6: rustc_traits::evaluate_obligation::evaluate_obligation
   7: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::evaluate_obligation, rustc_query_impl::plumbing::QueryCtxt>
   8: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
   9: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::predicate_must_hold_modulo_regions
  10: clippy_lints::methods::unnecessary_to_owned::can_change_type::{{closure}}
             at /home/smoelius/gh/rust-lang/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:423:30
  11: core::iter::traits::iterator::Iterator::any::check::{{closure}}
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/traits/iterator.rs:2633:20
  12: core::iter::adapters::filter::filter_try_fold::{{closure}}
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/adapters/filter.rs:44:44
  13: core::iter::adapters::copied::copy_try_fold::{{closure}}
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/adapters/copied.rs:35:22
  14: core::iter::traits::iterator::Iterator::try_fold
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/traits/iterator.rs:2238:21
  15: <core::iter::adapters::copied::Copied<I> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/adapters/copied.rs:69:9
  16: <core::iter::adapters::filter::Filter<I,P> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/adapters/filter.rs:93:9
  17: core::iter::traits::iterator::Iterator::any
             at /rustc/4b8f4319954ff2642690b9e5cbe4af352d095bf6/library/core/src/iter/traits/iterator.rs:2637:9
  18: clippy_lints::methods::unnecessary_to_owned::can_change_type
             at /home/smoelius/gh/rust-lang/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:420:28
  19: clippy_lints::methods::unnecessary_to_owned::check_other_call_arg
             at /home/smoelius/gh/rust-lang/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:266:12
  20: clippy_lints::methods::unnecessary_to_owned::check
             at /home/smoelius/gh/rust-lang/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:51:17
  21: <clippy_lints::methods::Methods as rustc_lint::passes::LateLintPass>::check_expr
             at /home/smoelius/gh/rust-lang/rust-clippy/clippy_lints/src/methods/mod.rs:3328:17
  22: <rustc_lint::early::EarlyLintPassObjects as rustc_lint::passes::EarlyLintPass>::check_generic_arg
  23: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  24: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  25: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  26: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  27: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  28: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  29: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  30: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  31: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  32: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  33: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  34: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  35: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  36: rustc_hir::intravisit::walk_local::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  37: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_local
  38: rustc_hir::intravisit::walk_block::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  39: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_block
  40: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  41: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_nested_body
  42: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_fn
  43: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  44: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  45: rustc_hir::intravisit::walk_expr::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  46: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  47: rustc_hir::intravisit::walk_local::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  48: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_local
  49: rustc_hir::intravisit::walk_block::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  50: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_block
  51: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_expr
  52: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_nested_body
  53: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_fn
  54: rustc_hir::intravisit::walk_item::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  55: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_nested_item
  56: rustc_hir::intravisit::walk_mod::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  57: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_nested_item
  58: rustc_hir::intravisit::walk_mod::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  59: <rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects> as rustc_hir::intravisit::Visitor>::visit_nested_item
  60: rustc_hir::intravisit::walk_mod::<rustc_lint::late::LateContextAndPass<rustc_lint::late::LateLintPassObjects>>
  61: rustc_lint::late::late_lint_pass_crate::<rustc_lint::late::LateLintPassObjects>
  62: rustc_lint::late::late_lint_crate::<rustc_lint::BuiltinCombinedLateLintPass>
  63: <rustc_session::session::Session>::time::<(), rustc_lint::late::check_crate<rustc_lint::BuiltinCombinedLateLintPass, rustc_interface::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>
  64: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}>
  65: <core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#5}::{closure#1}> as core::ops::function::FnOnce<()>>::call_once
  66: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#5}>
  67: rustc_interface::passes::analysis
  68: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, (), core::result::Result<(), rustc_errors::ErrorGuaranteed>>
  69: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(), core::result::Result<(), rustc_errors::ErrorGuaranteed>>>
  70: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  71: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#1}::{closure#2}::{closure#3}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>
  72: <rustc_interface::interface::Compiler>::enter::<rustc_driver::run_compiler::{closure#1}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_errors::ErrorGuaranteed>>
  73: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_driver::run_compiler::{closure#1}>::{closure#0}::{closure#1}>
  74: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_driver::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.1.66 (a5995279f 2022-11-13)

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `impl core::future::future::Future<Output = core::result::Result<alloc::string::String, alloc::boxed::Box<(dyn core::error::Error + 'static)>>>: jsonrpsee_test_utils::TimeoutFutureExt<core::result::Result<alloc::string::String, alloc::boxed::Box<dyn core::error::Error>>>`
#1 [analysis] running analysis passes on this crate
end of query stack

@y21
Copy link
Member

y21 commented Sep 8, 2023

MCVE:

async fn helper(_: &mut (), _: impl AsRef<str>) {}

fn issue9922() {
    drop(helper(&mut (), "".to_string()));
}
thread 'rustc' panicked at compiler/rustc_trait_selection/src/traits/project.rs:484:9:
Normalizing Binder { value: <impl std::future::Future<Output = ()> as std::marker::Sized>, bound_vars: [] } without wrapping in a `Binder`

Bonus: using an extension trait with a Future blanket impl instead of the drop function gets you a slightly different ICE (not as minimized, this is closer to the code in the repo triggering this): playground

@Jarcho
Copy link
Contributor

Jarcho commented Dec 29, 2023

Fixed in #11953.

@Jarcho Jarcho closed this as completed Dec 29, 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

No branches or pull requests

4 participants