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: E0277 points at nonexisting .await #113203

Closed
matthiaskrgr opened this issue Jun 30, 2023 · 4 comments · Fixed by #114584
Closed

ice: E0277 points at nonexisting .await #113203

matthiaskrgr opened this issue Jun 30, 2023 · 4 comments · Fixed by #114584
Assignees
Labels
A-diagnostics Area: Messages for errors, warnings, and lints A-parser Area: The parsing of Rust source code to an AST C-bug Category: This is a bug. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-debug-assertions This issue requires a build of rustc or tooling with debug-assertions in some way T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

matthiaskrgr commented Jun 30, 2023

Code

rustc --edition=2018 file.rs

// --edition 2018

fn main() {
    await{}()
}

the zero sized span at the .await causes the debug ice

error[E0277]: `()` is not a future
 --> treereduce2.out:4:5
  |
4 |     await{}()
  |     ^^^^^  - help: remove the `.await`
  |     |
  |     `()` is not a future
  |

Meta

rustc --version --verbose:

330727467b8fdf2c43b95095a0efae7012c4f83b with debug assertions

Error output

error: incorrect use of `await`
 --> treereduce2.out:4:5
  |
4 |     await{}()
  |     ^^^^^^^ help: `await` is a postfix operation: `{}.await`

error[E0728]: `await` is only allowed inside `async` functions and blocks
 --> treereduce2.out:4:5
  |
3 | fn main() {
  |    ---- this is not `async`
4 |     await{}()
  |     ^^^^^ only allowed inside `async` functions and blocks

error[E0277]: `()` is not a future
 --> treereduce2.out:4:5
  |
4 |     await{}()
  |     ^^^^^  - help: remove the `.await`
  |     |
  |     `()` is not a future
  |
  = help: the trait `Future` is not implemented for `()`
  = note: () must be a future or must implement `IntoFuture` to be awaited
  = note: required for `()` to implement `IntoFuture`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0277, E0728.
For more information about an error, try `rustc --explain E0277`.
Backtrace

thread 'rustc' panicked at 'Span must not be empty and have no suggestion', /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_errors/src/diagnostic.rs:706:9
stack backtrace:
   0:     0x7f98172871c6 - std::backtrace_rs::backtrace::libunwind::trace::h3b6f3958cfae5377
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f98172871c6 - std::backtrace_rs::backtrace::trace_unsynchronized::hba0866c62f865804
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f98172871c6 - std::sys_common::backtrace::_print_fmt::h461d5205fa46ab52
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f98172871c6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd23e0c88b75add1c
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f981734b838 - core::fmt::rt::Argument::fmt::h4f8c28fcc5e0c6ce
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
   5:     0x7f981734b838 - core::fmt::write::h7d46c21d618fb808
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1094:21
   6:     0x7f98172c34df - std::io::Write::write_fmt::he0c42c5b1963312d
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/io/mod.rs:1714:15
   7:     0x7f9817286fc5 - std::sys_common::backtrace::_print::ha09d072c418bb9f3
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f9817286fc5 - std::sys_common::backtrace::print::h62c64c91ab9fc24c
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f98172e143c - std::panicking::default_hook::{{closure}}::h80ca51e5ae0d6e99
  10:     0x7f98172e1119 - std::panicking::default_hook::h52195cc8274e026a
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:288:9
  11:     0x7f9818e8330b - <alloc[59fef786b468a15e]::boxed::Box<dyn for<'a, 'b> core[ad2aefeb2646d5e0]::ops::function::Fn<(&'a core[ad2aefeb2646d5e0]::panic::panic_info::PanicInfo<'b>,), Output = ()> + core[ad2aefeb2646d5e0]::marker::Sync + core[ad2aefeb2646d5e0]::marker::Send> as core[ad2aefeb2646d5e0]::ops::function::Fn<(&core[ad2aefeb2646d5e0]::panic::panic_info::PanicInfo,)>>::call
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:2024:9
  12:     0x7f9818e8330b - rustc_driver_impl[df9a94172e917073]::install_ice_hook::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_driver_impl/src/lib.rs:1303:13
  13:     0x7f98172e1c15 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h69c000f778b2bc36
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:2024:9
  14:     0x7f98172e1c15 - std::panicking::rust_panic_with_hook::hb1c4833de90b47ba
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:709:13
  15:     0x7f9817287491 - std::panicking::begin_panic_handler::{{closure}}::h4c87999714b0dc12
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:595:13
  16:     0x7f98172872a6 - std::sys_common::backtrace::__rust_end_short_backtrace::h66b7903c065a3e86
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:151:18
  17:     0x7f98172e1782 - rust_begin_unwind
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:593:5
  18:     0x7f9817281433 - core::panicking::panic_fmt::hb3d3573ea68cbca7
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/panicking.rs:67:14
  19:     0x7f981b19b3e0 - <rustc_errors[56ab9bb9c5bf08f1]::diagnostic::Diagnostic>::span_suggestion_with_style::<&str, &str>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_errors/src/diagnostic.rs:706:9
  20:     0x7f981b27605b - <rustc_errors[56ab9bb9c5bf08f1]::diagnostic::Diagnostic>::span_suggestion::<&str, &str>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_errors/src/diagnostic.rs:687:9
  21:     0x7f981b27605b - <rustc_infer[bbddb35e20e57be7]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[99a87dbe658f5ec3]::traits::error_reporting::suggestions::TypeErrCtxtExt>::suggest_remove_await
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs:1631:21
  22:     0x7f981b28a52a - <rustc_infer[bbddb35e20e57be7]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[99a87dbe658f5ec3]::traits::error_reporting::TypeErrCtxtExt>::report_selection_error
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:897:25
  23:     0x7f981b29aa19 - <rustc_infer[bbddb35e20e57be7]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[99a87dbe658f5ec3]::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:1534:17
  24:     0x7f981b286e13 - <rustc_infer[bbddb35e20e57be7]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[99a87dbe658f5ec3]::traits::error_reporting::TypeErrCtxtExt>::report_fulfillment_errors
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:475:21
  25:     0x7f98193fbaf9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::select_obligations_where_possible::<<rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_argument_types::{closure#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs:601:13
  26:     0x7f98193fbaf9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_argument_types
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs:344:17
  27:     0x7f98193bd0e1 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::confirm_builtin_call
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/callee.rs:454:9
  28:     0x7f98193bb84c - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_call
  29:     0x7f981945584f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:338:45
  30:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:241:18
  31:     0x7f98193d70fa - stacker[da3c16f82a086d7c]::maybe_grow::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  32:     0x7f98193d70fa - rustc_data_structures[218407984dcef0d]::stack::ensure_sufficient_stack::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
  33:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:237:18
  34:     0x7f98194549e9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:191:9
  35:     0x7f981944830f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_meets_expectation_or_error::<<rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::demand_scrutinee_type::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:84:22
  36:     0x7f981944830f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_has_type_or_error::<<rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::demand_scrutinee_type::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:74:9
  37:     0x7f981944830f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::demand_scrutinee_type
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/_match.rs:489:13
  38:     0x7f981944830f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_match::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/_match.rs:27:28
  39:     0x7f981944830f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_match
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/_match.rs:23:19
  40:     0x7f98194554bd - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:334:17
  41:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:241:18
  42:     0x7f98193d70fa - stacker[da3c16f82a086d7c]::maybe_grow::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  43:     0x7f98193d70fa - rustc_data_structures[218407984dcef0d]::stack::ensure_sufficient_stack::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
  44:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:237:18
  45:     0x7f98194549e9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:191:9
  46:     0x7f98193ba6a7 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:164:9
  47:     0x7f98193ba6a7 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_call
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/callee.rs:89:18
  48:     0x7f981945584f - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:338:45
  49:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:241:18
  50:     0x7f98193d70fa - stacker[da3c16f82a086d7c]::maybe_grow::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  51:     0x7f98193d70fa - rustc_data_structures[218407984dcef0d]::stack::ensure_sufficient_stack::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
  52:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:237:18
  53:     0x7f98194549e9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:191:9
  54:     0x7f981940599d - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs:1589:44
  55:     0x7f981940599d - <core[ad2aefeb2646d5e0]::option::Option<&rustc_hir[960286a409f19beb]::hir::Expr>>::map::<(&rustc_hir[960286a409f19beb]::hir::Expr, rustc_middle[1e2433a00aeefc0b]::ty::Ty), <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/option.rs:1075:29
  56:     0x7f981940599d - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs:1589:26
  57:     0x7f981940599d - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::with_breakable_ctxt::<<rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}, ()>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs:1523:22
  58:     0x7f981940599d - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_block_with_expected
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs:1581:26
  59:     0x7f981945547a - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:337:41
  60:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:241:18
  61:     0x7f98193d70fa - stacker[da3c16f82a086d7c]::maybe_grow::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  62:     0x7f98193d70fa - rustc_data_structures[218407984dcef0d]::stack::ensure_sufficient_stack::<rustc_middle[1e2433a00aeefc0b]::ty::Ty, <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
  63:     0x7f98193d70fa - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:237:18
  64:     0x7f98194549e9 - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:191:9
  65:     0x7f98193d8eff - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_expr_with_hint
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:143:9
  66:     0x7f98193d8eff - <rustc_hir_typeck[57dbf10003e91c2a]::fn_ctxt::FnCtxt>::check_return_expr
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/expr.rs:824:30
  67:     0x7f98195001fa - rustc_hir_typeck[57dbf10003e91c2a]::check::check_fn
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/check.rs:117:5
  68:     0x7f98195bac44 - rustc_hir_typeck[57dbf10003e91c2a]::typeck_with_fallback::<rustc_hir_typeck[57dbf10003e91c2a]::typeck::{closure#0}>::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/lib.rs:214:9
  69:     0x7f98195bac44 - rustc_hir_typeck[57dbf10003e91c2a]::typeck_with_fallback::<rustc_hir_typeck[57dbf10003e91c2a]::typeck::{closure#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/lib.rs:174:36
  70:     0x7f98195bac44 - rustc_hir_typeck[57dbf10003e91c2a]::typeck
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_hir_typeck/src/lib.rs:156:5
  71:     0x7f981a96bd43 - rustc_query_impl[7a0377d14470f94a]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:582:47
  72:     0x7f981a96bd43 - rustc_query_impl[7a0377d14470f94a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7a0377d14470f94a]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:506:18
  73:     0x7f981aaac6eb - rustc_query_impl[7a0377d14470f94a]::query_impl::typeck::dynamic_query::{closure#2}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:578:25
  74:     0x7f981aaac6eb - <rustc_query_impl[7a0377d14470f94a]::query_impl::typeck::dynamic_query::{closure#2} as core[ad2aefeb2646d5e0]::ops::function::FnOnce<(rustc_middle[1e2433a00aeefc0b]::ty::context::TyCtxt, rustc_span[25f1549394aec581]::def_id::LocalDefId)>>::call_once
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/ops/function.rs:250:5
  75:     0x7f981a907926 - <rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false> as rustc_query_system[b0609e3a42ded90a]::query::config::QueryConfig<rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>>::compute
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/lib.rs:116:9
  76:     0x7f981a907926 - rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr::<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:487:72
  77:     0x7f981a907926 - rustc_middle[1e2433a00aeefc0b]::ty::context::tls::enter_context::<rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:82:9
  78:     0x7f981a907926 - <std[1f7b3825eda736b9]::thread::local::LocalKey<core[ad2aefeb2646d5e0]::cell::Cell<*const ()>>>::try_with::<rustc_middle[1e2433a00aeefc0b]::ty::context::tls::enter_context<rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:270:16
  79:     0x7f981a907926 - <std[1f7b3825eda736b9]::thread::local::LocalKey<core[ad2aefeb2646d5e0]::cell::Cell<*const ()>>>::with::<rustc_middle[1e2433a00aeefc0b]::ty::context::tls::enter_context<rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:246:9
  80:     0x7f981a907926 - rustc_middle[1e2433a00aeefc0b]::ty::context::tls::enter_context::<rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:79:9
  81:     0x7f981a907926 - <rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt as rustc_query_system[b0609e3a42ded90a]::query::QueryContext>::start_query::<rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:149:13
  82:     0x7f981a907926 - rustc_middle[1e2433a00aeefc0b]::ty::context::tls::with_related_context::<<rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt as rustc_query_system[b0609e3a42ded90a]::query::QueryContext>::start_query<rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[b0609e3a42ded90a]::query::plumbing::execute_job_non_incr<rustc_query_impl[7a0377d14470f94a]::DynamicConfig<rustc_query_system[b0609e3a42ded90a]::query::caches::VecCache<rustc_span[25f1549394aec581]::def_id::LocalDefId, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7a0377d14470f94a]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[1e2433a00aeefc0b]::query::erase::Erased<[u8; 8usize]>>::{closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:133:9

@matthiaskrgr matthiaskrgr added A-diagnostics Area: Messages for errors, warnings, and lints 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. C-bug Category: This is a bug. requires-debug-assertions This issue requires a build of rustc or tooling with debug-assertions in some way labels Jun 30, 2023
@estebank
Copy link
Contributor

This is because the parser recovers from an incorrect await invocation, while the suggestion creates a new Span to include the .. The solution would likely be to either signal that it was a recovered await. Maybe just by replacing the whole thing with an error AST placeholder, or to include a Span in the AST that includes the dot to avoid other issues. I think the first solution is likely better, it would silence any errors in the expression being awaited, but that should be fine in general.

@estebank estebank added A-parser Area: The parsing of Rust source code to an AST E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. labels Jun 30, 2023
@Alef-gabriel
Copy link

Hi guys, I can take this?

@estebank
Copy link
Contributor

Go ahead, @Alef-gabriel! I believe all you'd have to do is change Parser::recover_incorrect_await_syntax to always return self.mk_expr(span, ExprKind::Err) instead of trying to recover.

@darklyspaced
Copy link
Contributor

@rustbot claim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-diagnostics Area: Messages for errors, warnings, and lints A-parser Area: The parsing of Rust source code to an AST C-bug Category: This is a bug. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-debug-assertions This issue requires a build of rustc or tooling with debug-assertions in some way T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
4 participants