Skip to content

panic: incompatible integer types adding enum and int #22954

Description

@matthiaskrgr
enum Foo {
    A = 0,
    B = {let v = Foo::A; v + 2},
}

fn main() {}
rust-analyzer analysis-stats . --run-all-ide-things
Database loaded:     589.78ms, 229minstr, 48mb (metadata 298.98ms, 1011kinstr, 151kb; build 33.74ms, 180kinstr, 2144b)
  item trees: 1
  dependency lines of code: 1_467_433, item trees: 2_948
  dependency item stats: traits: 848, impl: 9_686, mods: 3_059, macro calls: 5_580, macro rules: 1_054
Item Tree Collection: 4.18s, 23ginstr, 427mb
  Total Statistics:
    crates: 1, mods: 1, decls: 2, bodies: 3, adts: 1, consts: 0, signatures: 2, variants: 2
  Workspace:
    traits: 0, macro_rules macros: 0, proc_macros: 0
    lines of code: 6, item trees: 1
    usages: traits: 0, impl: 0, mods: 0, macro calls: 0, macro rules: 0
  Dependencies:
    lines of code: 1_467_433, item trees: 2_948
    declarations: traits: 848, impl: 9_686, mods: 3_059, macro calls: 5_580, macro rules: 1_054
Item Collection:     2.50s, 11ginstr, 179mb
Crate lang items:    445.06ms, 2474minstr, 31mb
Expression Store Lowering: 268.86µs, 329kinstr, 7kb
  exprs: 7, ??ty: 0 (0%), ?ty: 0 (0%), !ty: 0
  pats: 1, ??ty: 0 (0%), ?ty: 0 (0%), !ty: 0
  panics: 0
Inference:           358.96ms, 1346minstr, 35mb
MIR lowering:        66.13µs, 97kinstr, 704b
Mir failed bodies: 0 (0%)

thread 'main' (1789978) panicked at src/tools/rust-analyzer/crates/hir-ty/src/mir/eval.rs:3390:5:
incompatible integer types
stack backtrace:
   0:     0x7f7fcbca6246 - <<std[74eb2aff46e51e81]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7aff35c028b048a4]::fmt::Display>::fmt
   1:     0x7f7fcc40ad52 - core[7aff35c028b048a4]::fmt::write
   2:     0x7f7fcbcbb38c - <std[74eb2aff46e51e81]::sys::stdio::unix::Stderr as core[7aff35c028b048a4]::io::write::Write>::write_fmt
   3:     0x7f7fcbc77e7a - std[74eb2aff46e51e81]::panicking::default_hook::{closure#0}
   4:     0x7f7fcbc988e3 - std[74eb2aff46e51e81]::panicking::default_hook
   5:     0x7f7fcbc98d4b - std[74eb2aff46e51e81]::panicking::panic_with_hook
   6:     0x7f7fcbc77f64 - std[74eb2aff46e51e81]::panicking::panic_handler::{closure#0}
   7:     0x7f7fcbc6f3e9 - std[74eb2aff46e51e81]::sys::backtrace::__rust_end_short_backtrace::<std[74eb2aff46e51e81]::panicking::panic_handler::{closure#0}, !>
   8:     0x7f7fcbc7988d - __rustc[49844a0cf2bb6b0d]::rust_begin_unwind
   9:     0x7f7fc8a33c7c - core[7aff35c028b048a4]::panicking::panic_fmt
  10:     0x55c777fc63dd - <hir_ty[f58a0abe133f1c00]::mir::eval::IntValue>::checked_add
  11:     0x55c777f94039 - <hir_ty[f58a0abe133f1c00]::mir::eval::Evaluator>::eval_rvalue
  12:     0x55c77800982f - hir_ty[f58a0abe133f1c00]::mir::eval::interpret_mir
  13:     0x55c778084853 - <hir_ty[f58a0abe133f1c00]::consteval::_::const_eval_discriminant_variant_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute
  14:     0x55c777e925a0 - <salsa[8774cceebe7971b6]::function::IngredientImpl<hir_ty[f58a0abe133f1c00]::consteval::_::const_eval_discriminant_variant_Configuration_>>::execute
  15:     0x55c778001875 - hir_ty[f58a0abe133f1c00]::consteval::const_eval_discriminant_variant
  16:     0x55c77806dbe6 - <core[7aff35c028b048a4]::iter::adapters::map::Map<core[7aff35c028b048a4]::iter::adapters::filter::Filter<core[7aff35c028b048a4]::iter::adapters::filter_map::FilterMap<core[7aff35c028b048a4]::iter::adapters::map::Map<core[7aff35c028b048a4]::iter::adapters::enumerate::Enumerate<core[7aff35c028b048a4]::slice::iter::Iter<ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>, <ra_ap_rustc_index[6e6194786c499247]::slice::IndexSlice<hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>::iter_enumerated::{closure#0}>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#5}>, <ra_ap_rustc_abi[6a9deacac8faccbd]::layout::LayoutCalculator<&ra_ap_rustc_abi[6a9deacac8faccbd]::TargetDataLayout>>::layout_of_enum<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#4}, core[7aff35c028b048a4]::iter::adapters::filter_map::FilterMap<core[7aff35c028b048a4]::iter::adapters::map::Map<core[7aff35c028b048a4]::iter::adapters::enumerate::Enumerate<core[7aff35c028b048a4]::slice::iter::Iter<ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>, <ra_ap_rustc_index[6e6194786c499247]::slice::IndexSlice<hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>::iter_enumerated::{closure#0}>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#5}>>::{closure#1}>, <ra_ap_rustc_abi[6a9deacac8faccbd]::layout::LayoutCalculator<&ra_ap_rustc_abi[6a9deacac8faccbd]::TargetDataLayout>>::layout_of_enum<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#4}, core[7aff35c028b048a4]::iter::adapters::filter_map::FilterMap<core[7aff35c028b048a4]::iter::adapters::map::Map<core[7aff35c028b048a4]::iter::adapters::enumerate::Enumerate<core[7aff35c028b048a4]::slice::iter::Iter<ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>, <ra_ap_rustc_index[6e6194786c499247]::slice::IndexSlice<hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>::iter_enumerated::{closure#0}>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#5}>>::{closure#2}> as core[7aff35c028b048a4]::iter::traits::iterator::Iterator>::next
  17:     0x55c777cacc80 - <ra_ap_rustc_abi[6a9deacac8faccbd]::layout::LayoutCalculator<&ra_ap_rustc_abi[6a9deacac8faccbd]::TargetDataLayout>>::layout_of_struct_or_enum::<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#4}, core[7aff35c028b048a4]::iter::adapters::filter_map::FilterMap<core[7aff35c028b048a4]::iter::adapters::map::Map<core[7aff35c028b048a4]::iter::adapters::enumerate::Enumerate<core[7aff35c028b048a4]::slice::iter::Iter<ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>, <ra_ap_rustc_index[6e6194786c499247]::slice::IndexSlice<hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx, ra_ap_rustc_index[6e6194786c499247]::vec::IndexVec<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, &&ra_ap_rustc_abi[6a9deacac8faccbd]::LayoutData<hir_ty[f58a0abe133f1c00]::layout::RustcFieldIdx, hir_ty[f58a0abe133f1c00]::layout::RustcEnumVariantIdx>>>>::iter_enumerated::{closure#0}>, <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute::inner_::{closure#5}>>
  18:     0x55c77808a101 - <hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_ as salsa[8774cceebe7971b6]::function::Configuration>::execute
  19:     0x55c777e98196 - <salsa[8774cceebe7971b6]::function::IngredientImpl<hir_ty[f58a0abe133f1c00]::layout::adt::_::layout_of_adt_query_Configuration_>>::execute
  20:     0x55c778015305 - hir_ty[f58a0abe133f1c00]::layout::adt::layout_of_adt_query
  21:     0x55c778c5a6b7 - <rust_analyzer[f1820004a41e425c]::cli::flags::AnalysisStats>::run::{closure#3}
  22:     0x55c778cb6762 - <rust_analyzer[f1820004a41e425c]::cli::flags::AnalysisStats>::run
  23:     0x55c778ef5fd6 - rust_analyzer[c4fd19d1c3329aa5]::main
  24:     0x55c778ef2373 - std[74eb2aff46e51e81]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core[7aff35c028b048a4]::result::Result<std[74eb2aff46e51e81]::process::ExitCode, anyhow[f3ff20ce718c24c8]::Error>, core[7aff35c028b048a4]::result::Result<std[74eb2aff46e51e81]::process::ExitCode, anyhow[f3ff20ce718c24c8]::Error>>
  25:     0x55c778ef40d2 - std[74eb2aff46e51e81]::rt::lang_start::<core[7aff35c028b048a4]::result::Result<std[74eb2aff46e51e81]::process::ExitCode, anyhow[f3ff20ce718c24c8]::Error>>::{closure#0}
  26:     0x7f7fcd503553 - std[74eb2aff46e51e81]::rt::lang_start_internal
  27:     0x55c778f0cb68 - main
  28:     0x7f7fc6a27741 - <unknown>
  29:     0x7f7fc6a27879 - __libc_start_main
  30:     0x55c7777f0ed9 - <unknown>
  31:                0x0 - <unknown>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions