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: librustc/ich/impls_ty.rs:906: ty::TypeVariants::hash_stable() - Unexpected variant TyInfer(?2). #49111

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant