Skip to content

cargo clippy ice with static async trait #9923

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

Closed
Sherlock-Holo opened this issue Nov 21, 2022 · 3 comments
Closed

cargo clippy ice with static async trait #9923

Sherlock-Holo opened this issue Nov 21, 2022 · 3 comments

Comments

@Sherlock-Holo
Copy link

    Checking syncit v0.1.0 (/home/sherlock/git/syncit)
warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
 --> src/lib.rs:3:12
  |
3 | #![feature(async_fn_in_trait)]
  |            ^^^^^^^^^^^^^^^^^
  |
  = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
  = note: `#[warn(incomplete_features)]` on by default

warning: use of deprecated associated function `chrono::FixedOffset::east`: use `east_opt()` instead
   --> src/sync_control/rumors_event_handler/mod.rs:591:38
    |
591 |         .with_timezone(&FixedOffset::east(8 * 3600))
    |                                      ^^^^
    |
    = note: `#[warn(deprecated)]` on by default

thread '<unnamed>' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<<Si as futures_util::Sink<sync_control::SendRumors>>::Error as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<<Si as futures_util::Sink<sync_control::SendRumors>>::Error as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<<Si as futures_util::Sink<sync_control::SendRumors>>::Error as std::error::Error>, polarity:Positive), []), Binder(TraitPredicate(<<Si as futures_util::Sink<sync_control::SendRumors>>::Error as std::fmt::Display>, polarity:Positive), []), Binder(TraitPredicate(<<Si as futures_util::Sink<sync_control::SendRumors>>::Error as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<Si as std::marker::Unpin>, polarity:Positive), []), Binder(TraitPredicate(<Si as futures_util::Sink<sync_control::SendRumors>>, polarity:Positive), []), Binder(TraitPredicate(<<I as index::Index>::Error as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<<I as index::Index>::Error as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<I as index::Index>, polarity:Positive), []), Binder(TraitPredicate(<Si as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<I as std::marker::Sized>, polarity:Positive), []), Binder(OutlivesPredicate(<Si as futures_util::Sink<sync_control::SendRumors>>::Error, ReStatic), []), Binder(OutlivesPredicate(<I as index::Index>::Error, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: Normalize { value: [static generator@src/sync_control/sync_all_handler/mod.rs:123:33: 288:6] } } }
- dep-node: type_op_normalize_ty(15139a4d8b7122f7-cbd01bdefd403f9a)', /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/compiler/rustc_query_system/src/dep_graph/graph.rs:316:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/a28f3c88e50a77bc2a91889241248c4543854e61/library/core/src/panicking.rs:65:14
   2: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::traits::query::type_op::Normalize<rustc_middle::ty::Ty>>>, core::result::Result<&rustc_middle::infer::canonical::Canonical<rustc_middle::infer::canonical::QueryResponse<rustc_middle::ty::Ty>>, rustc_middle::traits::query::NoSolution>>
   3: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::traits::query::type_op::Normalize<rustc_middle::ty::Ty>>>, core::result::Result<&rustc_middle::infer::canonical::Canonical<rustc_middle::infer::canonical::QueryResponse<rustc_middle::ty::Ty>>, rustc_middle::traits::query::NoSolution>>>
   4: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::type_op_normalize_ty, rustc_query_impl::plumbing::QueryCtxt>
   5: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::type_op_normalize_ty
   6: <rustc_middle::ty::ParamEnvAnd<rustc_middle::traits::query::type_op::Normalize<rustc_middle::ty::Ty>> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   7: <&mut <rustc_borrowck::type_check::free_region_relations::UniversalRegionRelationsBuilder>::create::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::Ty,)>>::call_once
   8: <alloc::vec::Vec<&rustc_middle::infer::canonical::QueryRegionConstraints> as alloc::vec::spec_from_iter::SpecFromIter<&rustc_middle::infer::canonical::QueryRegionConstraints, core::iter::adapters::flatten::FlatMap<core::iter::adapters::chain::Chain<core::iter::adapters::cloned::Cloned<core::slice::iter::Iter<rustc_middle::ty::Ty>>, core::option::IntoIter<rustc_middle::ty::Ty>>, core::iter::adapters::chain::Chain<core::iter::adapters::chain::Chain<core::option::IntoIter<&rustc_middle::infer::canonical::QueryRegionConstraints>, core::option::IntoIter<&rustc_middle::infer::canonical::QueryRegionConstraints>>, core::option::IntoIter<&rustc_middle::infer::canonical::QueryRegionConstraints>>, <rustc_borrowck::type_check::free_region_relations::UniversalRegionRelationsBuilder>::create::{closure#0}>>>::from_iter
   9: rustc_borrowck::type_check::free_region_relations::create
  10: rustc_borrowck::type_check::type_check
  11: rustc_borrowck::nll::compute_regions
  12: rustc_borrowck::do_mir_borrowck
  13: rustc_borrowck::mir_borrowck
  14: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  15: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>
  16: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>>
  17: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  18: <rustc_borrowck::type_check::TypeChecker>::prove_closure_bounds
  19: <rustc_borrowck::type_check::TypeChecker>::typeck_mir
  20: rustc_borrowck::type_check::type_check
  21: rustc_borrowck::nll::compute_regions
  22: rustc_borrowck::do_mir_borrowck
  23: rustc_borrowck::mir_borrowck
  24: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  25: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>
  26: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>>
  27: rustc_query_system::query::plumbing::force_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  28: rustc_query_impl::plumbing::force_from_dep_node::<rustc_query_impl::queries::mir_borrowck>
  29: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl::plumbing::QueryCtxt>
  30: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::type_of, rustc_query_impl::plumbing::QueryCtxt>
  31: <rustc_middle::ty::context::TyCtxt>::bound_type_of
  32: <rustc_middle::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  33: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  34: rustc_middle::ty::util::fold_list::<rustc_middle::ty::util::OpaqueTypeExpander, rustc_middle::ty::Ty, <&rustc_middle::ty::list::List<rustc_middle::ty::Ty> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with<rustc_middle::ty::util::OpaqueTypeExpander>::{closure#0}>
  35: <rustc_middle::ty::util::OpaqueTypeExpander as rustc_middle::ty::fold::FallibleTypeFolder>::try_fold_binder::<&rustc_middle::ty::list::List<rustc_middle::ty::Ty>>
  36: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeSuperFoldable>::super_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  37: rustc_middle::ty::util::fold_list::<rustc_middle::ty::util::OpaqueTypeExpander, rustc_middle::ty::subst::GenericArg, <&rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with<rustc_middle::ty::util::OpaqueTypeExpander>::{closure#0}>
  38: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeSuperFoldable>::super_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  39: <&rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  40: <rustc_middle::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  41: <rustc_middle::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  42: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  43: rustc_middle::ty::util::fold_list::<rustc_middle::ty::util::OpaqueTypeExpander, rustc_middle::ty::Ty, <&rustc_middle::ty::list::List<rustc_middle::ty::Ty> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with<rustc_middle::ty::util::OpaqueTypeExpander>::{closure#0}>
  44: <rustc_middle::ty::util::OpaqueTypeExpander as rustc_middle::ty::fold::FallibleTypeFolder>::try_fold_binder::<&rustc_middle::ty::list::List<rustc_middle::ty::Ty>>
  45: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeSuperFoldable>::super_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  46: rustc_middle::ty::util::fold_list::<rustc_middle::ty::util::OpaqueTypeExpander, rustc_middle::ty::subst::GenericArg, <&rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with<rustc_middle::ty::util::OpaqueTypeExpander>::{closure#0}>
  47: <rustc_middle::ty::Ty as rustc_middle::ty::fold::TypeSuperFoldable>::super_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  48: <&rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg> as rustc_middle::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle::ty::util::OpaqueTypeExpander>
  49: <rustc_middle::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  50: <rustc_middle::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  51: <rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type
  52: rustc_hir_analysis::check::check::check_mod_item_types
  53: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, ()>
  54: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>>
  55: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::check_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>
  56: <rustc_middle::hir::map::Map>::for_each_module::<rustc_hir_analysis::check_crate::{closure#6}::{closure#0}>
  57: rustc_hir_analysis::check_crate
  58: rustc_interface::passes::analysis
  59: <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>>
  60: 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>>>
  61: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  62: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#1}::{closure#2}::{closure#3}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>
  63: <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>>
  64: 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}>
  65: <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 (a28f3c8 2022-11-20)

query stack during panic:
#0 [type_op_normalize_ty] normalizing `[static generator@src/sync_control/sync_all_handler/mod.rs:123:33: 288:6]`
#1 [mir_borrowck] borrow-checking `sync_control::sync_all_handler::<impl at src/sync_control/sync_all_handler/mod.rs:48:1: 48:42>::update_index::{closure#0}`
#2 [mir_borrowck] borrow-checking `sync_control::sync_all_handler::<impl at src/sync_control/sync_all_handler/mod.rs:48:1: 48:42>::update_index`
#3 [type_of] computing type of `sync_control::sync_all_handler::<impl at src/sync_control/sync_all_handler/mod.rs:48:1: 48:42>::update_index::{opaque#0}`
#4 [check_mod_item_types] checking item types in module `sync_control`
#5 [analysis] running analysis passes on this crate
end of query stack
warning: `syncit` (lib) generated 2 warnings
error: could not compile `syncit`; 2 warnings emitted

if use cargo check, that won't get this error

causing this problem codes is https://github.com/Sherlock-Holo/syncit/tree/66dc7f7d22c843914d187462eb6c346b7d0cb649

@giraffate
Copy link
Contributor

Could you provide the version, rustc -Vv?

It looks that this is a duplicate of #9845.

@Sherlock-Holo
Copy link
Author

sorry for the late reply
I have updated rustc to

rustc 1.67.0-nightly (c090c68 2022-12-01)
binary: rustc
commit-hash: c090c68
commit-date: 2022-12-01
host: x86_64-unknown-linux-gnu
release: 1.67.0-nightly
LLVM version: 15.0.4

and the problem disappear

@giraffate
Copy link
Contributor

and the problem disappear

Thanks for check it! I'm closing this but feel free to comment here if the problem reproduce.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants