Skip to content

Error compiling "guessing_game" tutorial code #86498

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
RMBeristain opened this issue Jun 20, 2021 · 2 comments
Closed

Error compiling "guessing_game" tutorial code #86498

RMBeristain opened this issue Jun 20, 2021 · 2 comments
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

@RMBeristain
Copy link

Hi, I'm new to Rust and trying to follow the examples.
This was working perfectly fine yesterday.

The only difference is that yesterday I installed the "Rust" extension.
Today VS Code told me that rust wasn't installed in WSL (Ubuntu 20.04) and would I like to install it?

I clicked 'yes' and it did "something" (sorry I didn't pay attention to what happened, I assumed it was updating some internal VS Code stuff). After that I changed a letter on the source code to see the new compile message, as suggested in the Rust book, and it exploded.

I assume this is a VS Code || Rust extension bug but I'm a complete newb and don't know what else to do. Happy to provide more details if needed.

Code

use std::io;

fn main() {
    println!("Guess the number!");
    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read the line");

    println!("You guessed: {}", guess);
}

Meta

rustc --version --verbose:

rustc 1.52.0 (88f19c6da 2021-05-03)
binary: rustc
commit-hash: 88f19c6dab716c6281af7602e30f413e809c5974
commit-date: 2021-05-03
host: x86_64-unknown-linux-gnu
release: 1.52.0
LLVM version: 12.0.0

Error output

$ cargo build --verbose
       Fresh cfg-if v1.0.0
       Fresh ppv-lite86 v0.2.10
       Fresh libc v0.2.94
       Fresh getrandom v0.2.2
       Fresh rand_core v0.6.2
       Fresh rand_chacha v0.3.0
       Fresh rand v0.8.3
   Compiling guessing_game v0.1.0 (/home/raider/rust/projects/guessing_game)
     Running `rustc --crate-name guessing_game --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=d237917890a6c67c -C extra-filename=-d237917890a6c67c --out-dir /home/raider/rust/projects/guessing_game/target/debug/deps -C incremental=/home/raider/rust/projects/guessing_game/target/debug/incremental -L dependency=/home/raider/rust/projects/guessing_game/target/debug/deps --extern rand=/home/raider/rust/projects/guessing_game/target/debug/deps/librand-ecf794ab9f75ecae.rlib`
thread 'rustc' panicked at 'found unstable fingerprints for predicates_of(core[b0ed]::fmt::Display): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as std::fmt::Display>)), /home/raider/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:642:1: 642:18 (#0))] }', /rustc/88f19c6dab716c6281af7602e30f413e809c5974/compiler/rustc_query_system/src/query/plumbing.rs:593:5
note: run with `RUST_BACKTRACE=1` environment variable to display a 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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.52.0 (88f19c6da 2021-05-03) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin

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

query stack during panic:
#0 [predicates_of] computing predicates of `std::fmt::Display`
#1 [typeck] type-checking `main`
end of query stack
error: could not compile `guessing_game`

Caused by:
  process didn't exit successfully: `rustc --crate-name guessing_game --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=d237917890a6c67c -C extra-filename=-d237917890a6c67c --out-dir /home/raider/rust/projects/guessing_game/target/debug/deps -C incremental=/home/raider/rust/projects/guessing_game/target/debug/incremental -L dependency=/home/raider/rust/projects/guessing_game/target/debug/deps --extern rand=/home/raider/rust/projects/guessing_game/target/debug/deps/librand-ecf794ab9f75ecae.rlib` (exit code: 101)
Backtrace

$ RUST_BACKTRACE=1 cargo build
   Compiling guessing_game v0.1.0 (/home/raider/rust/projects/guessing_game)
thread 'rustc' panicked at 'found unstable fingerprints for predicates_of(core[b0ed]::fmt::Display): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as std::fmt::Display>)), /home/raider/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:642:1: 642:18 (#0))] }', /rustc/88f19c6dab716c6281af7602e30f413e809c5974/compiler/rustc_query_system/src/query/plumbing.rs:593:5
stack backtrace:
   0: rust_begin_unwind
             at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:493:5
   1: std::panicking::begin_panic_fmt
             at /rustc/88f19c6dab716c6281af7602e30f413e809c5974/library/std/src/panicking.rs:435:5
   2: rustc_query_system::query::plumbing::incremental_verify_ich
   3: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
   4: rustc_query_system::query::plumbing::get_query_impl
   5: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::predicates_of
   6: rustc_middle::ty::generics::GenericPredicates::instantiate_into
   7: rustc_middle::ty::generics::GenericPredicates::instantiate
   8: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::instantiate_bounds
   9: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::add_required_obligations
  10: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::instantiate_value_path
  11: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  12: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  13: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  14: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  15: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  16: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  17: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  18: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  19: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  20: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match
  21: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  22: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  23: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  24: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  25: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  26: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  27: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  28: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  29: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  30: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  31: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  32: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  33: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  34: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  35: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
  36: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  37: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  38: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
  39: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  40: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  41: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  42: rustc_typeck::check::check::check_fn
  43: rustc_infer::infer::InferCtxtBuilder::enter
  44: rustc_typeck::check::typeck
  45: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  46: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  47: rustc_query_system::query::plumbing::force_query_with_job
  48: rustc_query_system::query::plumbing::get_query_impl
  49: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
  50: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners
  51: rustc_typeck::check::typeck_item_bodies
  52: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  53: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  54: rustc_data_structures::stack::ensure_sufficient_stack
  55: rustc_query_system::query::plumbing::force_query_with_job
  56: rustc_query_system::query::plumbing::get_query_impl
  57: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck_item_bodies
  58: rustc_session::utils::<impl rustc_session::session::Session>::time
  59: rustc_typeck::check_crate
  60: rustc_interface::passes::analysis
  61: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  62: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  63: rustc_data_structures::stack::ensure_sufficient_stack
  64: rustc_query_system::query::plumbing::force_query_with_job
  65: rustc_query_system::query::plumbing::get_query_impl
  66: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  67: rustc_interface::passes::QueryContext::enter
  68: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  69: rustc_span::with_source_map
  70: rustc_interface::interface::create_compiler_and_run
  71: scoped_tls::ScopedKey<T>::set
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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.52.0 (88f19c6da 2021-05-03) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin

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

query stack during panic:
#0 [predicates_of] computing predicates of `std::fmt::Display`
#1 [typeck] type-checking `main`
#2 [typeck_item_bodies] type-checking all item bodies
#3 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `guessing_game`

To learn more, run the command again with --verbose.

@RMBeristain RMBeristain 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 Jun 20, 2021
@RMBeristain
Copy link
Author

I found this after I raised the issue (funny that Google didn't spit it out before 👎 )
#84341

I followed the suggestion to run cargo clean, and then build, and seems fine now?

raider@Ultra:~/rust/projects/guessing_game$ cargo clean
raider@Ultra:~/rust/projects/guessing_game$ cargo build
   Compiling libc v0.2.94
   Compiling getrandom v0.2.2
   Compiling cfg-if v1.0.0
   Compiling ppv-lite86 v0.2.10
   Compiling rand_core v0.6.2
   Compiling rand_chacha v0.3.0
   Compiling rand v0.8.3
   Compiling guessing_game v0.1.0 (/home/raider/rust/projects/guessing_game)
    Finished dev [unoptimized + debuginfo] target(s) in 11.89s

raider@Ultra:~/rust/projects/guessing_game$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
     Running `target/debug/guessing_game`
Guess the number!
Please input your guess.
4
You guessed: 4

I would close the issue but I have no clue what happened and don't know if it is helpful, so I'll leave it to you guys to decide.

@jonas-schievink
Copy link
Contributor

You're on an outdated Rust version

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