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

invalid syntax (unclosed brace) yields eventual ICE: unexpected ty: [type error] #67377

Closed
DutchGhost opened this issue Dec 17, 2019 · 6 comments · Fixed by #69903
Closed

invalid syntax (unclosed brace) yields eventual ICE: unexpected ty: [type error] #67377

DutchGhost opened this issue Dec 17, 2019 · 6 comments · Fixed by #69903
Labels
C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-medium Medium priority T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@DutchGhost
Copy link
Contributor

DutchGhost commented Dec 17, 2019

The following ICE's on stable, beta and nightly:

use std::marker::PhantomData;

enum Bug {
    V = [PhantomData; { [ () ].len() ].len() as isize,
    //                ^
    //                + ---- this brace is never closed!!!
}

(notice the { was NOT closed)

Backtrace:
error: incorrect close delimiter: `]`
 --> src/lib.rs:4:38
  |
4 |     V = [PhantomData; { [ () ].len() ].len() as isize,
  |         -             -              ^ incorrect close delimiter
  |         |             |
  |         |             un-closed delimiter
  |         close delimiter possibly meant for this

error: internal compiler error: src/librustc_mir/hair/cx/expr.rs:954: unexpected ty: [type error]

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:812:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:76
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:60
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1030
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:64
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:196
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:210
  10: rustc_driver::report_ice
  11: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
  12: std::panicking::begin_panic
  13: rustc_errors::HandlerInner::bug
  14: rustc_errors::Handler::bug
  15: rustc::util::bug::opt_span_bug_fmt::{{closure}}
  16: rustc::ty::context::tls::with_opt::{{closure}}
  17: rustc::ty::context::tls::with_context_opt
  18: rustc::ty::context::tls::with_opt
  19: rustc::util::bug::opt_span_bug_fmt
  20: rustc::util::bug::bug_fmt
  21: rustc_mir::hair::cx::expr::make_mirror_unadjusted
  22: rustc_mir::hair::cx::expr::<impl rustc_mir::hair::Mirror for &rustc::hir::Expr>::make_mirror
  23: <rustc_mir::hair::ExprRef as rustc_mir::hair::Mirror>::make_mirror
  24: rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue
  25: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  26: rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp
  27: rustc_mir::build::expr::as_place::<impl rustc_mir::build::Builder>::expr_as_place
  28: rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue
  29: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  30: rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp
  31: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand
  32: rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue
  33: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  34: rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp
  35: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand
  36: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand
  37: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::as_local_operand
  38: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  39: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
  40: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  41: rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp
  42: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand
  43: rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand
  44: rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue
  45: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  46: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  47: rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr
  48: rustc_mir::build::construct_const
  49: rustc::ty::context::tls::with_context::{{closure}}
  50: rustc_mir::build::mir_build
  51: rustc_mir::transform::mir_built
  52: rustc::ty::query::__query_compute::mir_built
  53: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_built>::compute
  54: rustc::dep_graph::graph::DepGraph::with_task_impl
  55: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  56: rustc_mir::transform::check_unsafety::unsafety_check_result
  57: rustc::ty::query::__query_compute::unsafety_check_result
  58: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::unsafety_check_result>::compute
  59: rustc::dep_graph::graph::DepGraph::with_task_impl
  60: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  61: rustc_mir::transform::mir_const
  62: rustc::ty::query::__query_compute::mir_const
  63: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_const>::compute
  64: rustc::dep_graph::graph::DepGraph::with_task_impl
  65: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  66: rustc_mir::transform::qualify_consts::mir_const_qualif
  67: rustc::ty::query::__query_compute::mir_const_qualif
  68: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_const_qualif>::compute
  69: rustc::dep_graph::graph::DepGraph::with_task_impl
  70: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  71: rustc_mir::transform::mir_validated
  72: rustc::ty::query::__query_compute::mir_validated
  73: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_validated>::compute
  74: rustc::dep_graph::graph::DepGraph::with_task_impl
  75: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  76: rustc_mir::borrow_check::mir_borrowck
  77: rustc::ty::query::__query_compute::mir_borrowck
  78: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_borrowck>::compute
  79: rustc::dep_graph::graph::DepGraph::with_task_impl
  80: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  81: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::ensure_query
  82: rustc_mir::transform::optimized_mir
  83: rustc::ty::query::__query_compute::optimized_mir
  84: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::optimized_mir>::compute
  85: rustc::dep_graph::graph::DepGraph::with_task_impl
  86: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  87: rustc_mir::interpret::eval_context::InterpCx<M>::load_mir
  88: rustc_mir::const_eval::const_eval_raw_provider
  89: rustc::ty::query::__query_compute::const_eval_raw
  90: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_raw>::compute
  91: rustc::dep_graph::graph::DepGraph::with_task_impl
  92: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  93: rustc_mir::const_eval::const_eval_provider
  94: rustc::ty::query::__query_compute::const_eval
  95: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval>::compute
  96: rustc::dep_graph::graph::DepGraph::with_task_impl
  97: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
  98: <rustc_typeck::collect::CollectItemTypesVisitor as rustc::hir::intravisit::Visitor>::visit_item
  99: rustc::hir::map::Map::visit_item_likes_in_module
 100: rustc_typeck::collect::collect_mod_item_types
 101: rustc::ty::query::__query_compute::collect_mod_item_types
 102: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_mod_item_types>::compute
 103: rustc::dep_graph::graph::DepGraph::with_task_impl
 104: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
 105: rustc_typeck::check_crate::{{closure}}::{{closure}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.39.0 (4560ea788 2019-11-04) running on x86_64-unknown-linux-gnu

note: compiler flags: -C codegen-units=1 -C debuginfo=2 --crate-type lib

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

query stack during panic:
thread 'rustc' panicked at 'already borrowed: BorrowMutError', src/libcore/result.rs:1165:5
stack backtrace:
   0:     0x7fe468c4daf4 - backtrace::backtrace::libunwind::trace::hda41dbcdfba36aa0
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
   1:     0x7fe468c4daf4 - backtrace::backtrace::trace_unsynchronized::h1a8d6e1f8cb3f5d4
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
   2:     0x7fe468c4daf4 - std::sys_common::backtrace::_print_fmt::h610c4127487e10da
                               at src/libstd/sys_common/backtrace.rs:76
   3:     0x7fe468c4daf4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0722dc552e01bd1d
                               at src/libstd/sys_common/backtrace.rs:60
   4:     0x7fe468c8612c - core::fmt::write::h01edf6dd68a42c9c
                               at src/libcore/fmt/mod.rs:1030
   5:     0x7fe468c41d17 - std::io::Write::write_fmt::hf15985f193f03c04
                               at src/libstd/io/mod.rs:1412
   6:     0x7fe468c52325 - std::sys_common::backtrace::_print::hd8d5d08a1795e743
                               at src/libstd/sys_common/backtrace.rs:64
   7:     0x7fe468c52325 - std::sys_common::backtrace::print::hf89a79e3921a2366
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x7fe468c52325 - std::panicking::default_hook::{{closure}}::h3a8f42beb3bb8ae3
                               at src/libstd/panicking.rs:196
   9:     0x7fe468c52016 - std::panicking::default_hook::h8f803b0bc31a5c37
                               at src/libstd/panicking.rs:210
  10:     0x7fe469189483 - rustc_driver::report_ice::he98718c53edc6d3d
  11:     0x7fe468c52b0c - std::panicking::rust_panic_with_hook::h825f041245da8739
                               at src/libstd/panicking.rs:477
  12:     0x7fe468c525c2 - std::panicking::continue_panic_fmt::hbe0378e33481e81b
                               at src/libstd/panicking.rs:380
  13:     0x7fe468c524b6 - rust_begin_unwind
                               at src/libstd/panicking.rs:307
  14:     0x7fe468c7faca - core::panicking::panic_fmt::h527855ce0bc891f6
                               at src/libcore/panicking.rs:85
  15:     0x7fe468c7fd07 - core::result::unwrap_failed::ha8b77e6004f0ba38
                               at src/libcore/result.rs:1165
  16:     0x7fe46af64fe5 - rustc_errors::Handler::force_print_diagnostic::h807dd1aae3e0d79e
  17:     0x7fe46a837d91 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::try_print_query_stack::h8734d6360e0a8b59
  18:     0x7fe46918a095 - rustc_driver::report_ice::he98718c53edc6d3d
  19:     0x7fe468c52b0c - std::panicking::rust_panic_with_hook::h825f041245da8739
                               at src/libstd/panicking.rs:477
  20:     0x7fe46af4c37d - std::panicking::begin_panic::h577649efa65d7301
  21:     0x7fe46af65743 - rustc_errors::HandlerInner::bug::hfd27cc932b37506a
  22:     0x7fe46af6462a - rustc_errors::Handler::bug::h32e2ca63254dbbec
  23:     0x7fe46a7f48c3 - rustc::util::bug::opt_span_bug_fmt::{{closure}}::hf2652d3cbc7068ac
  24:     0x7fe46a7ef933 - rustc::ty::context::tls::with_opt::{{closure}}::h0fe4f06c0a285fde
  25:     0x7fe46a7ef8a3 - rustc::ty::context::tls::with_context_opt::h01f88b941c2d3d77
  26:     0x7fe46a7ef8e7 - rustc::ty::context::tls::with_opt::hac6f601ca34cd941
  27:     0x7fe46a7f47d8 - rustc::util::bug::opt_span_bug_fmt::h234c815c9e7b30ef
  28:     0x7fe46a7f4742 - rustc::util::bug::bug_fmt::hca65a18e8bb5d55b
  29:     0x7fe469a93b38 - rustc_mir::hair::cx::expr::make_mirror_unadjusted::h79bf17834410ceb8
  30:     0x7fe469a8f72c - rustc_mir::hair::cx::expr::<impl rustc_mir::hair::Mirror for &rustc::hir::Expr>::make_mirror::h452fbd6128897835
  31:     0x7fe469dbccf6 - <rustc_mir::hair::ExprRef as rustc_mir::hair::Mirror>::make_mirror::h61b3e2926ecd55dc
  32:     0x7fe469d18b31 - rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue::hc76b26c7f9e16661
  33:     0x7fe469d1e9f1 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  34:     0x7fe469d1e3c2 - rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp::h6c83785bfcea8b3f
  35:     0x7fe469d1696a - rustc_mir::build::expr::as_place::<impl rustc_mir::build::Builder>::expr_as_place::h930a7c2b5286e31d
  36:     0x7fe469d18d36 - rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue::hc76b26c7f9e16661
  37:     0x7fe469d1e9f1 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  38:     0x7fe469d1e3c2 - rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp::h6c83785bfcea8b3f
  39:     0x7fe469d1632b - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand::h1c23cb59c441f03b
  40:     0x7fe469d19fd1 - rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue::hc76b26c7f9e16661
  41:     0x7fe469d1e9f1 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  42:     0x7fe469d1e3c2 - rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp::h6c83785bfcea8b3f
  43:     0x7fe469d1632b - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand::h1c23cb59c441f03b
  44:     0x7fe469d1661f - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand::h1c23cb59c441f03b
  45:     0x7fe469d16174 - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::as_local_operand::hf3e609ce62beae87
  46:     0x7fe469eaac7c - <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::hda7386db639cd944
  47:     0x7fe4699e3601 - <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter::h205999cfb2ee670d
  48:     0x7fe469d202e5 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  49:     0x7fe469d1e3c2 - rustc_mir::build::expr::as_temp::<impl rustc_mir::build::Builder>::expr_as_temp::h6c83785bfcea8b3f
  50:     0x7fe469d1632b - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand::h1c23cb59c441f03b
  51:     0x7fe469d1661f - rustc_mir::build::expr::as_operand::<impl rustc_mir::build::Builder>::expr_as_operand::h1c23cb59c441f03b
  52:     0x7fe469d1a148 - rustc_mir::build::expr::as_rvalue::<impl rustc_mir::build::Builder>::expr_as_rvalue::hc76b26c7f9e16661
  53:     0x7fe469d1e9f1 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  54:     0x7fe469d21208 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  55:     0x7fe469d21208 - rustc_mir::build::expr::into::<impl rustc_mir::build::Builder>::into_expr::h433aa4de00655726
  56:     0x7fe469d11df9 - rustc_mir::build::construct_const::h4a50cf498b0aaef6
  57:     0x7fe469b92bda - rustc::ty::context::tls::with_context::{{closure}}::hdbc49d28b4e3fc8d
  58:     0x7fe469d0fbc1 - rustc_mir::build::mir_build::h9b6a0d508efaccdf
  59:     0x7fe469af3751 - rustc_mir::transform::mir_built::h93b4d3d38d69c498
  60:     0x7fe469bec2d7 - rustc::ty::query::__query_compute::mir_built::h5ad6fc235bbbc440
  61:     0x7fe469b0a4ab - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_built>::compute::hd0251bf1e87724b2
  62:     0x7fe469c5652a - rustc::dep_graph::graph::DepGraph::with_task_impl::haf54122c0853cacb
  63:     0x7fe469b70b05 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::hcee602b1e4eb3310
  64:     0x7fe469e5ac26 - rustc_mir::transform::check_unsafety::unsafety_check_result::h36f3ad2c6f7e0e43
  65:     0x7fe469beb212 - rustc::ty::query::__query_compute::unsafety_check_result::h4fba89e0308db7b5
  66:     0x7fe469b0a99c - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::unsafety_check_result>::compute::h818a47e9622a43fd
  67:     0x7fe469c4e505 - rustc::dep_graph::graph::DepGraph::with_task_impl::h3b616150987f9c12
  68:     0x7fe469b5e553 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h9bd9dbc611fc1a2a
  69:     0x7fe469af4919 - rustc_mir::transform::mir_const::h12e0a05cddb3b5e7
  70:     0x7fe469bec3b7 - rustc::ty::query::__query_compute::mir_const::hc3515bb4466ed9b3
  71:     0x7fe469b0a4cb - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_const>::compute::he95dc3e0c3f86dc7
  72:     0x7fe469c51f5a - rustc::dep_graph::graph::DepGraph::with_task_impl::h5be652c692dc409d
  73:     0x7fe469b35145 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h42eeb27492d3723a
  74:     0x7fe469e20b15 - rustc_mir::transform::qualify_consts::mir_const_qualif::hd2843ee34a3dc5d5
  75:     0x7fe469bea987 - rustc::ty::query::__query_compute::mir_const_qualif::h241800c190c483c8
  76:     0x7fe469b0a89b - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_const_qualif>::compute::h9de41e3fd16dbfff
  77:     0x7fe469c4d82d - rustc::dep_graph::graph::DepGraph::with_task_impl::h35d46e0645cb8b9b
  78:     0x7fe469b5638c - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h97f89de2e33c512c
  79:     0x7fe469af4bcf - rustc_mir::transform::mir_validated::h5bf799490b5b54c3
  80:     0x7fe469be9d47 - rustc::ty::query::__query_compute::mir_validated::h9d8f3d8fb0921797
  81:     0x7fe469b0a68b - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_validated>::compute::hda79517c6c5929cf
  82:     0x7fe469c58bcd - rustc::dep_graph::graph::DepGraph::with_task_impl::hcf137298249d0df7
  83:     0x7fe469b7dffc - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::he08db4d9d67c98c7
  84:     0x7fe469bc9f96 - rustc_mir::borrow_check::mir_borrowck::h6f4df8db09583d80
  85:     0x7fe469be99c2 - rustc::ty::query::__query_compute::mir_borrowck::hfdfaef87366e7519
  86:     0x7fe469b0a5fc - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::mir_borrowck>::compute::h7c86a16c9036c12c
  87:     0x7fe469c59f64 - rustc::dep_graph::graph::DepGraph::with_task_impl::hd29558dcd1a1f4c9
  88:     0x7fe469b285c5 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h28abddf0758aa8f7
  89:     0x7fe469b0abb2 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::ensure_query::hc650b30d4d6b3882
  90:     0x7fe469af55c6 - rustc_mir::transform::optimized_mir::h139134c79f6f2d9e
  91:     0x7fe469be9e27 - rustc::ty::query::__query_compute::optimized_mir::h44f61d86051b7d0c
  92:     0x7fe469b0a6ab - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::optimized_mir>::compute::hbdbe95326aaa4da6
  93:     0x7fe469c4ebaa - rustc::dep_graph::graph::DepGraph::with_task_impl::h40983d3994b385f3
  94:     0x7fe469b8412b - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::he77d7da6529aaa10
  95:     0x7fe469c8b5d7 - rustc_mir::interpret::eval_context::InterpCx<M>::load_mir::h0c15a562c9f92d82
  96:     0x7fe469afb73e - rustc_mir::const_eval::const_eval_raw_provider::hca378418cb8b802f
  97:     0x7fe469bea133 - rustc::ty::query::__query_compute::const_eval_raw::h40faa9b9ed7f9ffd
  98:     0x7fe469b0a72a - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_raw>::compute::h264c546cc8c8f7ff
  99:     0x7fe469c4b6af - rustc::dep_graph::graph::DepGraph::with_task_impl::h2a70cac1884a524e
 100:     0x7fe469b76d8d - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::hdca4664449bd6663
 101:     0x7fe469afa791 - rustc_mir::const_eval::const_eval_provider::ha3233606f24ba55a
 102:     0x7fe469757763 - rustc::ty::query::__query_compute::const_eval::hb9da53ea08710357
 103:     0x7fe4697f1f4a - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval>::compute::ha6ad154a6315d6db
 104:     0x7fe46978572a - rustc::dep_graph::graph::DepGraph::with_task_impl::h0f2fffdad4bfe656
 105:     0x7fe46983ef4a - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h9ee11c1da09150db
 106:     0x7fe4698b29d8 - <rustc_typeck::collect::CollectItemTypesVisitor as rustc::hir::intravisit::Visitor>::visit_item::h6ecf11c5154ce45d
 107:     0x7fe46975d103 - rustc::hir::map::Map::visit_item_likes_in_module::h6cf58cf1c61058c9
 108:     0x7fe4698b2424 - rustc_typeck::collect::collect_mod_item_types::ha8af4c2694cae051
 109:     0x7fe46975944a - rustc::ty::query::__query_compute::collect_mod_item_types::h0959d140ce4a445c
 110:     0x7fe4697f234b - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_mod_item_types>::compute::hcc8bedd87b11d3e0
 111:     0x7fe469785e9d - rustc::dep_graph::graph::DepGraph::with_task_impl::h1149bcd7b6e6f8f9
 112:     0x7fe4698145aa - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h1ad8f3fe22fc6341
 113:     0x7fe46977d23d - rustc_typeck::check_crate::{{closure}}::{{closure}}::hef852192e4b21571
 114:     0x7fe46975d766 - rustc::util::common::time::h6c804872fd5ef88f
 115:     0x7fe46992d3fc - rustc_typeck::check_crate::h2e77f97476aecad8
 116:     0x7fe46923800a - rustc_interface::passes::analysis::h7d37d49a7360493d
 117:     0x7fe46914bc01 - rustc::ty::query::__query_compute::analysis::h1c5cc76ea5bb496b
 118:     0x7fe469134d8e - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::hcf7bc9d073dcb36b
 119:     0x7fe46915342a - rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}::h7fc0f9f179325408
 120:     0x7fe4692b41da - rustc_interface::passes::create_global_ctxt::{{closure}}::h10595b15ffb5db35
 121:     0x7fe46915564e - rustc_interface::interface::run_compiler_in_existing_thread_pool::ha009ae4607895a11
 122:     0x7fe46918b362 - std::thread::local::LocalKey<T>::with::h30eaff0b6e71bc49
 123:     0x7fe4691903ce - scoped_tls::ScopedKey<T>::set::h6ab0051cc42102a7
 124:     0x7fe4691b11a2 - syntax::with_globals::h9994c1c3242d3263
 125:     0x7fe46911de10 - std::sys_common::backtrace::__rust_begin_short_backtrace::h229c554686840b66
 126:     0x7fe468c6325a - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:80
 127:     0x7fe469147879 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hf2e117c529f2753f
 128:     0x7fe468c341ff - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h483711add4ba2330
                               at /rustc/4560ea788cb760f0a34127156c78e2552949f734/src/liballoc/boxed.rs:922
 129:     0x7fe468c61f00 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h7605b45eb29ed0be
                               at /rustc/4560ea788cb760f0a34127156c78e2552949f734/src/liballoc/boxed.rs:922
 130:     0x7fe468c61f00 - std::sys_common::thread::start_thread::h557b0c2dc4449562
                               at src/libstd/sys_common/thread.rs:13
 131:     0x7fe468c61f00 - std::sys::unix::thread::Thread::new::thread_start::h7c2a7f9b68fe4bba
                               at src/libstd/sys/unix/thread.rs:79
 132:     0x7fe4689ce6db - start_thread
 133:     0x7fe4682eb88f - __clone
 134:                0x0 - <unknown>

error: internal compiler error: unexpected panic

@DutchGhost
Copy link
Contributor Author

Oh, this works with other types as well, except the messages are different

enum Bug {
    V = [Vec::new; { [].len()  ].len() as isize,
}

ICE's with:

error: internal compiler error: src/librustc/ty/sty.rs:1809: sequence_element_type called on non-sequence value: [type error]

@DutchGhost
Copy link
Contributor Author

enum Bug {
    V = [Vec::new; { [0].len()  ].len() as isize,
}

ICE's with:

error: internal compiler error: src/librustc/ty/mod.rs:2400: enum discriminant depends on generic arguments

@jonas-schievink jonas-schievink added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Dec 17, 2019
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label Dec 18, 2019
@pnkfelix
Copy link
Member

Its worth nothing explicitly that:

  1. these ICE's are happening after we do issue a diagnostic for the parsing error
  2. If you address the parsing error (presumably in the same manner that the parser is auto-correcting to make further progress), the ICE goes away

@pnkfelix pnkfelix changed the title ICE: unexpected ty: [type error] invalid syntax (unclosed brace) yields eventual ICE: unexpected ty: [type error] Dec 19, 2019
@pnkfelix
Copy link
Member

triage: P-medium. Removing nomination.

@pnkfelix pnkfelix added P-medium Medium priority and removed I-nominated labels Dec 19, 2019
@Centril
Copy link
Contributor

Centril commented Mar 10, 2020

Triage:

  • The first example still ICEs in MIR building
  • The second and third examples don't ICE anymore and need tests (without closing this issue!).

@Centril Centril added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Mar 10, 2020
@Centril
Copy link
Contributor

Centril commented Mar 10, 2020

cc @oli-obk @varkor

Centril added a commit to Centril/rust that referenced this issue Apr 15, 2020
Do not ICE in the face of invalid enum discriminant

Fix rust-lang#67377.

r? @pnkfelix
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this issue Apr 15, 2020
Do not ICE in the face of invalid enum discriminant

Fix rust-lang#67377.

r? @pnkfelix
@bors bors closed this as completed in 03707b5 Apr 16, 2020
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. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-medium Medium priority T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants