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

Internal Compiler Error building sample code from https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html #85070

Closed
rootingfortrees opened this issue May 8, 2021 · 3 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

@rootingfortrees
Copy link

rootingfortrees commented May 8, 2021

Edit: this sounds like #84341. Let me know if there's something useful I can provide from my local environment (I have the incremental compilation artifacts backed up).

Code

The code on its own is probably not helpful (it's the final version of the guessing game from chapter 2 of the book). I wrote this in VS code with the Rust extension installed and built it successfully with cargo; then I installed the rust-analyzer extension, disabled Rust, restarted VS code, and hit this error when trying to run from within the editor (and then after that consistently saw the same error when trying to build from the command line). Happy to provide any build artifacts that are useful (this is on Windows 10 Pro 19042.928).

use rand::Rng;
use std::cmp::Ordering;
use std::io;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1..101);

    loop {
        println!("Please input your guess.");

        let mut guess = String::new();

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

        let guess: u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(_) => continue,
        };

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

        match guess.cmp(&secret_number) {
            Ordering::Less => println!("Too small!"),
            Ordering::Greater => println!("Too big!"),
            Ordering::Equal => {
                println!("You win!");
                break;
            }
        }
    }
}

Meta

rustc --version --verbose:

>rustc --version --verbose
rustc 1.52.0 (88f19c6da 2021-05-03)
binary: rustc
commit-hash: 88f19c6dab716c6281af7602e30f413e809c5974
commit-date: 2021-05-03
host: x86_64-pc-windows-msvc
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 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 (C:\Users\{username}\code\rust\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=5c97f38c8efdf5da --out-dir C:\Users\{username}\code\rust\guessing_game\target\debug\deps -C incremental=C:\Users\{username}\code\rust\guessing_game\target\debug\incremental -L dependency=C:\Users\{username}\code\rust\guessing_game\target\debug\deps --extern rand=C:\Users\{username}\code\rust\guessing_game\target\debug\deps\librand-cf02a276127e463a.rlib`
thread 'rustc' panicked at 'found unstable fingerprints for predicates_of(core[bd3a]::ops::deref::Deref): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as std::ops::Deref>)), C:\Users\{username}\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\ops\deref.rs:64:1: 64:16 (#0))] }', /rustc/88f19c6dab716c6281af7602e30f413e809c5974\compiler\rustc_query_system\src\query\plumbing.rs:593:5
{backtrace moved to separate section}

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-pc-windows-msvc

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::ops::Deref`
#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`

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=5c97f38c8efdf5da --out-dir C:\Users\{username}\code\rust\guessing_game\target\debug\deps -C incremental=C:\Users\{username}\code\rust\guessing_game\target\debug\incremental -L dependency=C:\Users\{username}\code\rust\guessing_game\target\debug\deps --extern rand=C:\Users\{username}\code\rust\guessing_game\target\debug\deps\librand-cf02a276127e463a.rlib` (exit code: 101)
Backtrace

stack backtrace:
   0:     0x7ffa6af581fe - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h3ee8647f7e1079db
   1:     0x7ffa6af832fc - core::fmt::write::h37cf99794c5c88ee
   2:     0x7ffa6af4bc58 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::hbb31fdd82c487bf0
   3:     0x7ffa6af5c39d - std::panicking::take_hook::he8d839f36ebc5025
   4:     0x7ffa6af5be69 - std::panicking::take_hook::he8d839f36ebc5025
   5:     0x7ffa4f11d9c7 - rustc_driver::report_ice::hc57d4e141f91d8a8
   6:     0x7ffa6af5cbf5 - std::panicking::rust_panic_with_hook::h82b4e4f3be46852c
   7:     0x7ffa6af5c761 - rust_begin_unwind
   8:     0x7ffa6af58b4f - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h3ee8647f7e1079db
   9:     0x7ffa6af5c6b9 - rust_begin_unwind
  10:     0x7ffa6afb4dec - std::panicking::begin_panic_fmt::h3cee835f7be6e70f
  11:     0x7ffa51cddffc - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  12:     0x7ffa51d05b44 - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  13:     0x7ffa51f3a91b - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  14:     0x7ffa51c1a290 - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  15:     0x7ffa51e5c18d - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  16:     0x7ffa53151c11 - rustc_middle::ty::generics::GenericPredicates::instantiate_own::h51d523cc130602b9
  17:     0x7ffa53151617 - rustc_middle::ty::generics::GenericPredicates::instantiate::he2f245abffd92c7a
  18:     0x7ffa517b3633 - rustc_typeck::check::method::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::lookup_method_in_trait::h262c595ae062c836
  19:     0x7ffa517d0e74 - rustc_typeck::check::method::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_ufcs::hc84cae5416e458b0
  20:     0x7ffa519584d6 - rustc_lint::context::LintStore::get_lints::h121906fa46b88a25
  21:     0x7ffa51741978 - rustc_typeck::check::autoderef::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::adjust_steps::hfd03b1c5e67de876
  22:     0x7ffa51820ba5 - rustc_typeck::check::inherited::Inherited::register_predicate::hb2a29cb9b7dd2d79
  23:     0x7ffa517b1f84 - rustc_typeck::check::method::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::lookup_method::h9facae27a820694d
  24:     0x7ffa51759916 - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  25:     0x7ffa517592df - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  26:     0x7ffa517598d5 - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  27:     0x7ffa517592df - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  28:     0x7ffa51740e65 - rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match::h9f626a622567ce73
  29:     0x7ffa5173e08e - rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match::h9f626a622567ce73
  30:     0x7ffa5175984d - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  31:     0x7ffa517592df - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  32:     0x7ffa51759141 - rustc_typeck::check::demand::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_for_cast::h547397e8d87f8fec
  33:     0x7ffa5177c44f - rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_decl_local::hf88eb3dd0a5e8b21
  34:     0x7ffa5177c5c1 - rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt::h24e664f26b14ece2
  35:     0x7ffa5177d041 - rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_no_value::h04dadce00f98d3e8
  36:     0x7ffa5177cbca - rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_no_value::h04dadce00f98d3e8
  37:     0x7ffa5175c8c1 - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  38:     0x7ffa517592df - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  39:     0x7ffa5177d089 - rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_no_value::h04dadce00f98d3e8
  40:     0x7ffa517592df - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  41:     0x7ffa51766534 - rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation::ha3f484f82cb4a6ff
  42:     0x7ffa51908cd1 - rustc_typeck::check::check::check_wf_new::h9c32b11c71de1be8
  43:     0x7ffa51894488 - <rustc_typeck::astconv::ConvertedBindingKind as core::fmt::Debug>::fmt::h5519b26bf4527d33
  44:     0x7ffa51925641 - <rustc_typeck::check::fixup_opaque_types::FixupFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty::hd4ce30df61a3cf38
  45:     0x7ffa51f22379 - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  46:     0x7ffa51e89989 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  47:     0x7ffa51f4bc88 - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  48:     0x7ffa51c8b3ea - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  49:     0x7ffa51bf1958 - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  50:     0x7ffa51e60082 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  51:     0x7ffa5181862b - <rustc_typeck::bounds::Bounds as core::fmt::Debug>::fmt::h5859ca23977fa056
  52:     0x7ffa51926ff3 - <rustc_typeck::check::CheckItemTypesVisitor as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item::h979a7c3a154b2bcd
  53:     0x7ffa51f23ef9 - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  54:     0x7ffa51e8de3f - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  55:     0x7ffa51f5d56a - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  56:     0x7ffa51ca937b - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  57:     0x7ffa51be38db - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  58:     0x7ffa51e5ffc2 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  59:     0x7ffa51819389 - <rustc_typeck::bounds::Bounds as core::fmt::Debug>::fmt::h5859ca23977fa056
  60:     0x7ffa51845ed7 - rustc_typeck::check_crate::ha5af7191d683cc6d
  61:     0x7ffa4f270f2e - rustc_interface::passes::BoxedResolver::to_resolver_outputs::h7a1a389ffa8b4ef1
  62:     0x7ffa51f23509 - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  63:     0x7ffa51e90b76 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  64:     0x7ffa51f527c7 - <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::store_diagnostics_for_anon_node::h5397f0d33c4b219c
  65:     0x7ffa51cb5cca - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  66:     0x7ffa51c1774e - <rustc_ast_lowering::item::ItemLowerer as rustc_ast::visit::Visitor>::visit_foreign_item::h8a641d9769f09835
  67:     0x7ffa51e5bfd2 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::try_print_query_stack::hcfeb9e88469194a3
  68:     0x7ffa4f189809 - <rustc_driver::args::Error as core::fmt::Debug>::fmt::he9bb74d196e6a2c3
  69:     0x7ffa4f136a2b - <rustc_middle::ty::SymbolName as core::fmt::Display>::fmt::hcb9f176ea80c3032
  70:     0x7ffa4f1206cc - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h5d81a6d2c7da3faa
  71:     0x7ffa4f138637 - <rustc_middle::ty::SymbolName as core::fmt::Display>::fmt::hcb9f176ea80c3032
  72:     0x7ffa4f127de4 - rustc_driver::pretty::print_after_hir_lowering::hfe86111045a339ee
  73:     0x7ffa4f139bbf - <rustc_middle::ty::SymbolName as core::fmt::Display>::fmt::hcb9f176ea80c3032
  74:     0x7ffa4f15929d - <rustc_middle::ty::SymbolName as core::fmt::Display>::fmt::hcb9f176ea80c3032
  75:     0x7ffa6af6bc9a - std::sys::windows::thread::Thread::new::h171cad5aadd5b51e
  76:     0x7ffabe467034 - BaseThreadInitThunk
  77:     0x7ffabe702651 - RtlUserThreadStart

@rootingfortrees rootingfortrees 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 May 8, 2021
@bingo-ctrl
Copy link

this may be helpful #84970

@rootingfortrees
Copy link
Author

@bingo-ctrl thanks! Yeah deleting the incremental output did fix the error.

@wesleywiser
Copy link
Member

Thanks for filing the bug report! We are currently triaging issues related to #84970 to ensure each underlying problem gets resolved. Since this appears to be a duplicate of #83259 so I'm going to close in favor of that issue.

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

3 participants