Skip to content

internal compiler error: librustc/ich/impls_ty.rs:906: ty::TypeVariants::hash_stable() - Unexpected variant TyInfer(?2). #49111

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
bjorn3 opened this issue Mar 17, 2018 · 5 comments

Comments

@bjorn3
Copy link
Member

bjorn3 commented Mar 17, 2018

cargo build
   Compiling miri v0.1.0 (file:///Users/bjorn/Documents/miri)
error: expected one of `.`, `;`, `?`, `}`, or an operator, found `,`
   --> miri/fn_call.rs:388:92
    |
388 |                                 Value::ByRef(MemoryPointer::new(ptr, 0).into(), name_align),
    |                                                                                            ^ expected one of `.`, `;`, `?`, `}`, or an operator here

error[E0425]: cannot find value `m` in this scope
   --> miri/lib.rs:260:15
    |
260 |         match m {
    |               ^ did you mean `C`?

warning: unused import: `rustc::traits`
  --> miri/lib.rs:25:5
   |
25 | use rustc::traits;
   |     ^^^^^^^^^^^^^
   |
   = note: #[warn(unused_imports)] on by default

warning: unused import: `rustc::traits::Reveal`
 --> miri/intrinsic.rs:2:5
  |
2 | use rustc::traits::Reveal;
  |     ^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> miri/lib.rs:263:21
    |
263 |             _ => Ok(()),
    |                     ^^ expected bool, found ()
    |
    = note: expected type `bool`
               found type `()`

error[E0308]: mismatched types
   --> miri/lib.rs:270:36
    |
270 |       ) -> EvalResult<'tcx, AllocId> {
    |  ____________________________________^
271 | |
272 | |     }
    | |_____^ expected enum `std::result::Result`, found ()
    |
    = note: expected type `std::result::Result<rustc::mir::interpret::AllocId, rustc::mir::interpret::EvalError<'tcx>>`
               found type `()`

error[E0308]: mismatched types
   --> miri/lib.rs:341:13
    |
341 | /             GlobalId {
342 | |                 instance,
343 | |                 promoted: None,
344 | |             },
    | |_____________^ expected struct `rustc::hir::def_id::DefId`, found struct `rustc::mir::interpret::GlobalId`
    |
    = note: expected type `rustc::hir::def_id::DefId`
               found type `rustc::mir::interpret::GlobalId<'_>`

error: internal compiler error: librustc/ich/impls_ty.rs:906: ty::TypeVariants::hash_stable() - Unexpected variant TyInfer(?2).

thread 'rustc' panicked at 'Box<Any>', librustc_errors/lib.rs:540:9
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: core::ops::function::Fn::call
   5: std::panicking::rust_panic_with_hook
   6: std::panicking::begin_panic
   7: rustc_errors::Handler::bug
   8: rustc::session::opt_span_bug_fmt::{{closure}}
   9: rustc::ty::context::tls::with_opt::{{closure}}
  10: <std::thread::local::LocalKey<T>>::try_with
  11: <std::thread::local::LocalKey<T>>::with
  12: rustc::ty::context::tls::with
  13: rustc::ty::context::tls::with_opt
  14: rustc::session::opt_span_bug_fmt
  15: rustc::session::bug_fmt
  16: rustc::ich::impls_ty::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext<'a>> for rustc::ty::sty::TypeVariants<'gcx>>::hash_stable
  17: rustc::ich::impls_ty::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext<'a>> for &'gcx rustc::ty::Slice<T>>::hash_stable
  18: rustc::ich::impls_ty::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext<'a>> for rustc::ty::sty::TypeVariants<'gcx>>::hash_stable
  19: <T as rustc::dep_graph::dep_node::DepNodeParams<'a, 'gcx, 'tcx>>::to_fingerprint
  20: rustc::dep_graph::dep_node::DepNode::new
  21: rustc::ty::maps::<impl rustc::ty::maps::queries::dropck_outlives<'tcx>>::try_get
  22: rustc::ty::maps::TyCtxtAt::dropck_outlives
  23: rustc::traits::query::dropck_outlives::<impl rustc::infer::at::At<'cx, 'gcx, 'tcx>>::dropck_outlives
  24: rustc_typeck::check::dropck::check_safety_of_destructor_if_necessary
  25: rustc_typeck::check::regionck::RegionCtxt::check_safety_of_rvalue_destructor_if_necessary
  26: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  27: rustc::hir::intravisit::walk_expr
  28: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  29: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  30: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  31: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_arm
  32: rustc::hir::intravisit::walk_expr
  33: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  34: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_local
  35: rustc::hir::intravisit::walk_expr
  36: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  37: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_arm
  38: rustc::hir::intravisit::walk_expr
  39: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  40: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  41: rustc::hir::intravisit::walk_expr
  42: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  43: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_arm
  44: rustc::hir::intravisit::walk_expr
  45: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  46: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_local
  47: rustc::hir::intravisit::walk_expr
  48: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  49: rustc::hir::intravisit::walk_expr
  50: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  51: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_arm
  52: rustc::hir::intravisit::walk_expr
  53: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  54: rustc::hir::intravisit::walk_expr
  55: <rustc_typeck::check::regionck::RegionCtxt<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_expr
  56: rustc_typeck::check::regionck::RegionCtxt::visit_fn_body
  57: rustc_typeck::check::regionck::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::regionck_fn
  58: rustc::ty::context::tls::enter
  59: rustc::infer::InferCtxtBuilder::enter
  60: rustc_typeck::check::typeck_tables_of
  61: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_tables_of<'tcx>>::compute_result
  62: rustc::dep_graph::graph::DepGraph::with_task_impl
  63: rustc_errors::Handler::track_diagnostics
  64: rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check
  65: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_tables_of<'tcx>>::force
  66: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_tables_of<'tcx>>::try_get
  67: rustc::ty::maps::TyCtxtAt::typeck_tables_of
  68: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_tables_of<'tcx>>::ensure
  69: rustc::session::Session::track_errors
  70: rustc_typeck::check::typeck_item_bodies
  71: rustc::dep_graph::graph::DepGraph::with_task_impl
  72: rustc_errors::Handler::track_diagnostics
  73: rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check
  74: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_item_bodies<'tcx>>::force
  75: rustc::ty::maps::<impl rustc::ty::maps::queries::typeck_item_bodies<'tcx>>::try_get
  76: rustc::ty::maps::TyCtxtAt::typeck_item_bodies
  77: rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::typeck_item_bodies
  78: rustc_typeck::check_crate
  79: <std::thread::local::LocalKey<T>>::with
  80: <std::thread::local::LocalKey<T>>::with
  81: rustc::ty::context::TyCtxt::create_and_enter
  82: rustc_driver::driver::compile_input
  83: rustc_driver::run_compiler_impl
  84: syntax::with_globals

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.26.0-nightly (55c984ee5 2018-03-16) running on x86_64-apple-darwin

note: compiler flags: -C debuginfo=2 -C incremental --crate-type lib

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

error: Could not compile `miri`.

To learn more, run the command again with --verbose.
@bjorn3
Copy link
Member Author

bjorn3 commented Mar 17, 2018

When running cargo build again it crashes again. However, when I split a random identifier in two using a space the ICE fixed itself. (but reappears when removing the space again)

@bjorn3
Copy link
Member Author

bjorn3 commented Mar 17, 2018

The crash keeps occuring even when I run rm -r target/debug/incremental

@bjorn3
Copy link
Member Author

bjorn3 commented Mar 17, 2018

I published the crashing code at https://github.com/bjorn3/miri/tree/rustc_ice

@bjorn3
Copy link
Member Author

bjorn3 commented Mar 17, 2018

After fixing several legit errors for a while, I got this error:

error[E0282]: type annotations needed
   --> miri/fn_call.rs:391:33
    |
391 | /                                 eval_body(self.tcx.tcx, cid, ty::ParamEnv::reveal_all())
392 | |                                     .ok_or_else(||EvalErrorKind::MachineError("<already reported>".to_string()).into())?.0
    | |________________________________________________________________________________________________________________________^ cannot infer type for `_`

This might be related.

@bjorn3
Copy link
Member Author

bjorn3 commented Mar 17, 2018

Looks like a dup of #49043

@bjorn3 bjorn3 closed this as completed Mar 17, 2018
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant