Skip to content

Load-bearing comment Incremental ICE #93602

Closed
@CAD97

Description

@CAD97

This is as minimized as I could get:

Code

// mod r#impl;

#[derive(Debug)]
pub struct Parser<'src> {
    src: &'src str,
    pos: usize,
    // depth: usize,
    state: ParseState,
}

impl<'src> Parser<'src> {
    pub fn new(src: &'src str) -> Self {
        Self {
            src,
            pos: 0,
            // depth: 0,
            state: ParseState::WantNode,
        }
    }
}

#[derive(Debug, PartialEq, Eq)]
enum ParseState {
    WantNode,
    WantChild,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Event<'src> {
    BeginNode {
        slashdash: bool,
        type_annotation: Option<Identifier<'src>>,
        name: Identifier<'src>,
    },
    Argument {
        type_annotation: Option<Identifier<'src>>,
        value: &'src str,
    },
    Property {
        name: Identifier<'src>,
        type_annotation: Option<Identifier<'src>>,
        value: &'src str,
    },
    Children,
    End,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Identifier<'src> {
    Bare(&'src str),
    Escaped(&'src str),
    Raw(&'src str),
}
  • cargo build
  • Delete the comment on line 1 OR both lines 7 and 16
  • cargo build
  • ICE

Meta

This is not happening on nightly. But load bearing comments is scary enough I wanted to report this anyway.

rustc --version --verbose:

rustc 1.59.0-beta.5 (28c8a34e1 2022-01-27)
binary: rustc
commit-hash: 28c8a34e18fc05277c81328d1bbf5ed931f4d22e
commit-date: 2022-01-27
host: x86_64-pc-windows-msvc
release: 1.59.0-beta.5
LLVM version: 13.0.0

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 51 but the index is 51', compiler\rustc_query_impl\src\on_disk_cache.rs:726:18
stack backtrace:
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.59.0-beta.5 (28c8a34e1 2022-01-27) running on x86_64-pc-windows-msvc

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

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

query stack during panic:
#0 [codegen_fulfill_obligation] checking if `core::fmt::Debug` fulfills its obligations
#1 [resolve_instance] resolving instance `<&core::option::Option<Identifier> as core::fmt::Debug>::fmt`
#2 [vtable_entries] finding all vtable entries for trait core::fmt::Debug
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_symbols] exported_symbols
end of query stack
Backtrace

stack backtrace:
   0:     0x7ffdad975fdf - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hcb4b39deedfbc6bf
   1:     0x7ffdad9a559a - core::fmt::write::he96346b765e36572
   2:     0x7ffdad967408 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::h98885d2743aadc81
   3:     0x7ffdad979a0b - std::panicking::take_hook::h721111918dfcd5c5
   4:     0x7ffdad979504 - std::panicking::take_hook::h721111918dfcd5c5
   5:     0x7ffd486c39f9 - <rustc_middle[e8be7f10e3e30399]::ty::SymbolName as core[1d83072e00ca4c26]::fmt::Debug>::fmt
   6:     0x7ffdad97a136 - std::panicking::rust_panic_with_hook::h2757289713985cd7
   7:     0x7ffdad979f3b - <std::panicking::begin_panic_handler::StrPanicPayload as core::panic::BoxMeUp>::get::h49a8ba1714a1d465
   8:     0x7ffdad976927 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hcb4b39deedfbc6bf
   9:     0x7ffdad979c39 - rust_begin_unwind
  10:     0x7ffdad9d7ef0 - core::panicking::panic_fmt::h28161e1bada08bd1
  11:     0x7ffdad9d7eb7 - core::panicking::panic_bounds_check::hffc92e70f59f16e6
  12:     0x7ffd4bf3490b - <rustc_span[550e41ecb909559f]::span_encoding::Span as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  13:     0x7ffd4bee794c - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  14:     0x7ffd4bdc7fba - rustc_query_impl[131a58ac89a902d8]::query_callbacks::diagnostic_hir_wf_check
  15:     0x7ffd4bd67003 - <rustc_middle[e8be7f10e3e30399]::ty::adt::AdtSizedConstraint as rustc_query_impl[131a58ac89a902d8]::values::Value>::from_cycle_error
  16:     0x7ffd4bd43c54 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  17:     0x7ffd4bed84a9 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  18:     0x7ffd4bddd7cc - <rustc_query_impl[131a58ac89a902d8]::on_disk_cache::OnDiskCache>::load_side_effects
  19:     0x7ffd4bed8598 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  20:     0x7ffd4bd8c3fa - RNvXsd_NtCs1DGqIPIOvr0_16rustc_query_impl13on_disk_cacheRINtNtNtNtCs7aJtBMv7B6j_3std11collections4hash3set7HashSetNtNtCs7iKsVne8byR_10rustc_span6def_id10LocalDefIdINtNtCs2x5CUVA4D6k_4core4hash18BuildHasherDefaultNtCshQqtYeJfeAw_10rustc_hash8FxHasherEEINtN
  21:     0x7ffd4bd8db6c - RNvXsd_NtCs1DGqIPIOvr0_16rustc_query_impl13on_disk_cacheRINtNtNtNtCs7aJtBMv7B6j_3std11collections4hash3set7HashSetNtNtCs7iKsVne8byR_10rustc_span6def_id10LocalDefIdINtNtCs2x5CUVA4D6k_4core4hash18BuildHasherDefaultNtCshQqtYeJfeAw_10rustc_hash8FxHasherEEINtN
  22:     0x7ffd4bed86a3 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  23:     0x7ffd4bd44346 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  24:     0x7ffd4bed84a9 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  25:     0x7ffd4bddd7cc - <rustc_query_impl[131a58ac89a902d8]::on_disk_cache::OnDiskCache>::load_side_effects
  26:     0x7ffd4bed8598 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  27:     0x7ffd4bd8c3fa - RNvXsd_NtCs1DGqIPIOvr0_16rustc_query_impl13on_disk_cacheRINtNtNtNtCs7aJtBMv7B6j_3std11collections4hash3set7HashSetNtNtCs7iKsVne8byR_10rustc_span6def_id10LocalDefIdINtNtCs2x5CUVA4D6k_4core4hash18BuildHasherDefaultNtCshQqtYeJfeAw_10rustc_hash8FxHasherEEINtN
  28:     0x7ffd4bd8dcc3 - RNvXsd_NtCs1DGqIPIOvr0_16rustc_query_impl13on_disk_cacheRINtNtNtNtCs7aJtBMv7B6j_3std11collections4hash3set7HashSetNtNtCs7iKsVne8byR_10rustc_span6def_id10LocalDefIdINtNtCs2x5CUVA4D6k_4core4hash18BuildHasherDefaultNtCshQqtYeJfeAw_10rustc_hash8FxHasherEEINtN
  29:     0x7ffd4bee4065 - <&[(rustc_middle[e8be7f10e3e30399]::ty::Predicate, rustc_span[550e41ecb909559f]::span_encoding::Span)] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  30:     0x7ffd4bd789cd - <rustc_middle[e8be7f10e3e30399]::mir::interpret::GlobalId as rustc_query_impl[131a58ac89a902d8]::keys::Key>::default_span
  31:     0x7ffd4bdd5feb - <rustc_query_impl[131a58ac89a902d8]::on_disk_cache::OnDiskCache>::load_side_effects
  32:     0x7ffd4bb133f4 - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  33:     0x7ffd4bc45037 - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  34:     0x7ffd4bd05c53 - <rustc_query_impl[131a58ac89a902d8]::Queries>::as_dyn
  35:     0x7ffd4bca568a - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  36:     0x7ffd4bd3e404 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  37:     0x7ffd4b221a09 - rustc_ty_utils[3781a4ad9059bb0d]::instance::provide
  38:     0x7ffd4b220286 - rustc_ty_utils[3781a4ad9059bb0d]::instance::provide
  39:     0x7ffd4bd4d163 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  40:     0x7ffd4bc1efec - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  41:     0x7ffd4bd05822 - <rustc_query_impl[131a58ac89a902d8]::Queries>::as_dyn
  42:     0x7ffd4bc8241d - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  43:     0x7ffd4bd3f661 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  44:     0x7ffd4cbd67c9 - <rustc_middle[e8be7f10e3e30399]::ty::instance::Instance>::resolve_opt_const_arg
  45:     0x7ffd4cbc839b - <rustc_middle[e8be7f10e3e30399]::ty::instance::Instance>::resolve_for_vtable
  46:     0x7ffd4c94d78f - <rustc_trait_selection[1b9055e1c4f657df]::traits::auto_trait::RegionDeps as core[1d83072e00ca4c26]::fmt::Debug>::fmt
  47:     0x7ffd4c8ff4ec - rustc_trait_selection[1b9055e1c4f657df]::traits::impossible_predicates
  48:     0x7ffd4c8fe6d4 - rustc_trait_selection[1b9055e1c4f657df]::traits::impossible_predicates
  49:     0x7ffd4bd4d961 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  50:     0x7ffd4bc2098d - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  51:     0x7ffd4bd0ea62 - <rustc_query_impl[131a58ac89a902d8]::Queries>::as_dyn
  52:     0x7ffd4bc7a054 - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  53:     0x7ffd4bd3e343 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  54:     0x7ffd4ac52a34 - <rustc_monomorphize[2d7a027cec0a5735]::collector::MirNeighborCollector as rustc_middle[e8be7f10e3e30399]::mir::visit::Visitor>::visit_operand
  55:     0x7ffd4ac506fe - <rustc_monomorphize[2d7a027cec0a5735]::collector::MirNeighborCollector as rustc_middle[e8be7f10e3e30399]::mir::visit::Visitor>::visit_rvalue
  56:     0x7ffd4ac54759 - <rustc_monomorphize[2d7a027cec0a5735]::collector::RootCollector as rustc_hir[7e355ad7be8a675b]::itemlikevisit::ItemLikeVisitor>::visit_impl_item
  57:     0x7ffd4ac4d7ae - <rustc_monomorphize[2d7a027cec0a5735]::partitioning::MonoItemPlacement as core[1d83072e00ca4c26]::fmt::Debug>::fmt
  58:     0x7ffd4ac3701e - <core[1d83072e00ca4c26]::option::Option<rustc_middle[e8be7f10e3e30399]::middle::privacy::AccessLevel> as rustc_privacy[75773fc7197fff26]::VisibilityLike>::new_min
  59:     0x7ffd4ac4bd03 - <rustc_monomorphize[2d7a027cec0a5735]::partitioning::MonoItemPlacement as core[1d83072e00ca4c26]::fmt::Debug>::fmt
  60:     0x7ffd4ac47aa3 - <rustc_monomorphize[2d7a027cec0a5735]::partitioning::default::DefaultPartitioning as rustc_monomorphize[2d7a027cec0a5735]::partitioning::Partitioner>::internalize_symbols
  61:     0x7ffd4bd4c0e3 - <rustc_query_impl[131a58ac89a902d8]::Queries as rustc_middle[e8be7f10e3e30399]::ty::query::QueryEngine>::try_mark_green
  62:     0x7ffd4be87703 - <&[rustc_ast[406c67bf1af5d1f0]::ast::InlineAsmTemplatePiece] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  63:     0x7ffd4bd295cc - <rustc_query_impl[131a58ac89a902d8]::Queries>::as_dyn
  64:     0x7ffd4bc18e6f - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  65:     0x7ffd4bce2b20 - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  66:     0x7ffd4bdb47d7 - rustc_query_impl[131a58ac89a902d8]::query_callbacks::collect_and_partition_mono_items
  67:     0x7ffd4cb17bc3 - <rustc_middle[e8be7f10e3e30399]::ty::context::TyCtxt as rustc_query_system[da7f1cc4b8055ce2]::dep_graph::DepContext>::try_force_from_dep_node
  68:     0x7ffd4beae53b - <&[rustc_ast[406c67bf1af5d1f0]::ast::InlineAsmTemplatePiece] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  69:     0x7ffd4beae1aa - <&[rustc_ast[406c67bf1af5d1f0]::ast::InlineAsmTemplatePiece] as rustc_serialize[7a7d8c4496902bcc]::serialize::Decodable<rustc_query_impl[131a58ac89a902d8]::on_disk_cache::CacheDecoder>>::decode
  70:     0x7ffd4bc3e56d - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  71:     0x7ffd4bd0f3c2 - <rustc_query_impl[131a58ac89a902d8]::Queries>::as_dyn
  72:     0x7ffd4bbe680b - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  73:     0x7ffd4bc7f093 - <rustc_mir_dataflow[752d4053f08c2531]::impls::storage_liveness::MaybeRequiresStorage as rustc_mir_dataflow[752d4053f08c2531]::framework::AnalysisDomain>::initialize_start_block
  74:     0x7ffd4c243bb3 - <rustc_metadata[5db6f7f4bfa8fe45]::rmeta::encoder::EncodeContext as rustc_middle[e8be7f10e3e30399]::ty::codec::TyEncoder>::encode_alloc_id
  75:     0x7ffd4c25b940 - rustc_metadata[5db6f7f4bfa8fe45]::rmeta::encoder::encode_metadata
  76:     0x7ffd4c2b7325 - <u32 as rustc_metadata[5db6f7f4bfa8fe45]::rmeta::table::FixedSizeEncoding>::write_to_bytes_at
  77:     0x7ffd4c25aff3 - rustc_metadata[5db6f7f4bfa8fe45]::rmeta::encoder::encode_metadata
  78:     0x7ffd487c8b6c - <rustc_interface[31ce9d8f7019e821]::queries::Queries>::ongoing_codegen
  79:     0x7ffd4867563f - <rustc_driver[45305811ac36932b]::args::Error as core[1d83072e00ca4c26]::fmt::Debug>::fmt
  80:     0x7ffd486524e5 - <sha2[b9a4e930306da819]::sha512::Sha512 as std[538cbe44b3125595]::io::Write>::flush
  81:     0x7ffd48672f91 - <sha2[b9a4e930306da819]::sha512::Sha512 as std[538cbe44b3125595]::io::Write>::flush
  82:     0x7ffd48655ac7 - <sha2[b9a4e930306da819]::sha512::Sha512 as std[538cbe44b3125595]::io::Write>::flush
  83:     0x7ffd4865470c - <sha2[b9a4e930306da819]::sha512::Sha512 as std[538cbe44b3125595]::io::Write>::flush
  84:     0x7ffd48678f08 - <rustc_middle[e8be7f10e3e30399]::ty::SymbolName as core[1d83072e00ca4c26]::fmt::Debug>::fmt
  85:     0x7ffdad98a0ac - std::sys::windows::thread::Thread::new::h221b319dbb2805a7
  86:     0x7ffdea3f7034 - BaseThreadInitThunk
  87:     0x7ffdeb322651 - RtlUserThreadStart

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions