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

rustc nighlty bug with ?-operator #92293

Closed
Arjentix opened this issue Dec 26, 2021 · 1 comment
Closed

rustc nighlty bug with ?-operator #92293

Arjentix opened this issue Dec 26, 2021 · 1 comment
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@Arjentix
Copy link

Code

Sorry, I can't provide miminal verifiable example, but I can provide my project commit, where I found this problem.
Checkout https://github.com/Arjentix/rpass/commit/da6f202da8103c8120ceab5deae39bf5de301454
The next commit fixes error in my code, so project can be compiled: https://github.com/Arjentix/rpass/commit/668e0eb28fb2b79472f2f6a101c48b55f5f4f82e

Meta

rustc --version --verbose:

rustc 1.59.0-nightly (efec54529 2021-12-04)
binary: rustc
commit-hash: efec545293b9263be9edfb283a7aa66350b3acbf
commit-date: 2021-12-04
host: x86_64-apple-darwin
release: 1.59.0-nightly
LLVM version: 13.0.0

Everything works on stable toolchain! The problem is on nightly build only

Error output

   Compiling rpass v0.1.0 (/Volumes/Development/Projects/rpass/rpass)
error: internal compiler error: compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:321:26: while adjusting Expr { hir_id: HirId { owner: DefId(0:133 ~ rpass[9674]::session::authorized::{impl#0}::get_record), local_id: 164 }, kind: AddrOf(Ref, Not, Expr { hir_id: HirId { owner: DefId(0:133 ~ rpass[9674]::session::authorized::{impl#0}::get_record), local_id: 163 }, kind: Path(Resolved(None, Path { span: rpass/src/session/authorized.rs:138:33: 138:41 (#0), res: Local(HirId { owner: DefId(0:133 ~ rpass[9674]::session::authorized::{impl#0}::get_record), local_id: 134 }), segments: [PathSegment { ident: response#0, hir_id: Some(HirId { owner: DefId(0:133 ~ rpass[9674]::session::authorized::{impl#0}::get_record), local_id: 162 }), res: Some(Local(HirId { owner: DefId(0:133 ~ rpass[9674]::session::authorized::{impl#0}::get_record), local_id: 134 })), args: None, infer_args: true }] })), span: rpass/src/session/authorized.rs:138:33: 138:41 (#0) }), span: rpass/src/session/authorized.rs:138:32: 138:41 (#0) }, can't compose [Deref(None) -> String, Deref(Some(OverloadedDeref { region: '_#60r, mutbl: Not, span: rpass/src/session/authorized.rs:138:32: 138:41 (#0) })) -> str, Borrow(Ref('_#58r, Not)) -> &str] and [Deref(None) -> String, Deref(Some(OverloadedDeref { region: '_#64r, mutbl: Not, span: rpass/src/session/authorized.rs:138:32: 138:41 (#0) })) -> str, Borrow(Ref('_#62r, Not)) -> &str]

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.59.0-nightly (efec54529 2021-12-04) running on x86_64-apple-darwin

note: compiler flags: -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `session::authorized::<impl at rpass/src/session/authorized.rs:13:1: 211:2>::get_record`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `rpass`
Backtrace


thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1170:9
stack backtrace:
   0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
   1: std::panic::panic_any::<rustc_errors::ExplicitBug>
   2: <rustc_errors::HandlerInner>::bug
   3: <rustc_errors::Handler>::bug
   4: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, ()>
   5: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>
   6: rustc_middle::util::bug::bug_fmt
   7: <rustc_typeck::check::fn_ctxt::FnCtxt>::apply_adjustments
   8: <rustc_typeck::check::fn_ctxt::FnCtxt>::try_coerce
   9: <rustc_typeck::check::fn_ctxt::FnCtxt>::demand_coerce_diag
  10: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  11: <rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  12: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  13: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  14: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  15: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  16: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  17: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  18: <rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  19: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  20: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  21: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  22: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  23: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  24: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  25: rustc_typeck::check::check::check_fn
  26: <rustc_infer::infer::InferCtxtBuilder>::enter::<&rustc_middle::ty::context::TypeckResults, <rustc_typeck::check::inherited::InheritedBuilder>::enter<rustc_typeck::check::typeck_with_fallback<rustc_typeck::check::typeck::{closure#0}>::{closure#1}, &rustc_middle::ty::context::TypeckResults>::{closure#0}>
  27: rustc_typeck::check::typeck
  28: <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::ty::context::TypeckResults>
  29: rustc_data_structures::stack::ensure_sufficient_stack::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::execute_job<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>::{closure#3}>
  30: 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::ty::context::TypeckResults>>
  31: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::typeck, rustc_query_impl::plumbing::QueryCtxt>
  32: <rustc_middle::hir::map::Map>::par_body_owners::<rustc_typeck::check::typeck_item_bodies::{closure#0}>
  33: rustc_typeck::check::typeck_item_bodies
  34: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, (), ()>
  35: rustc_data_structures::stack::ensure_sufficient_stack::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::execute_job<rustc_query_impl::plumbing::QueryCtxt, (), ()>::{closure#3}>
  36: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(), ()>>
  37: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::typeck_item_bodies, rustc_query_impl::plumbing::QueryCtxt>
  38: <rustc_session::session::Session>::time::<(), rustc_typeck::check_crate::{closure#7}>
  39: rustc_typeck::check_crate
  40: rustc_interface::passes::analysis
  41: <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::ErrorReported>>
  42: rustc_data_structures::stack::ensure_sufficient_stack::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::execute_job<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_errors::ErrorReported>>::{closure#3}>
  43: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(), core::result::Result<(), rustc_errors::ErrorReported>>>
  44: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  45: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#1}::{closure#2}::{closure#3}, core::result::Result<(), rustc_errors::ErrorReported>>
  46: <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::ErrorReported>>
  47: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::interface::create_compiler_and_run<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#1}>::{closure#1}>
  48: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

@Arjentix Arjentix added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Dec 26, 2021
@compiler-errors
Copy link
Member

This is a dupe of #92010

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

2 participants