Skip to content

ICE when trying to compile enums with non-const discriminants. #3635

Open
@sakupan102

Description

@sakupan102

Code

fn main() {
    let y = 3;
    enum Foo {
    Bar = y,       
    }
}

Version

b79c452e07c

Error output

crab1: internal compiler error: Segmentation fault
0x12fa2c3 crash_signal
        ../../gccrs/gcc/toplev.cc:319
0xb7ac50 Rust::TyTy::VariantDef::as_string[abi:cxx11]() const
        ../../gccrs/gcc/rust/typecheck/rust-tyty.cc:1541
0xb7afbb Rust::TyTy::ADTType::as_string[abi:cxx11]() const
        ../../gccrs/gcc/rust/typecheck/rust-tyty.cc:1677
0xb975cb Rust::TyTy::VarianceAnalysis::GenericTyVisitorCtx::process_type(Rust::TyTy::ADTType&)
        ../../gccrs/gcc/rust/typecheck/rust-tyty-variance-analysis.cc:236
0xb977f3 Rust::TyTy::VarianceAnalysis::GenericTyPerCrateCtx::process_type(Rust::TyTy::ADTType&)
        ../../gccrs/gcc/rust/typecheck/rust-tyty-variance-analysis.cc:131
0xbb59c7 Rust::Resolver::TypeCheckItem::visit(Rust::HIR::Enum&)
        ../../gccrs/gcc/rust/typecheck/rust-hir-type-check-item.cc:391
0xbb073b Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&)
        ../../gccrs/gcc/rust/typecheck/rust-hir-type-check-item.cc:59
0xbb073b Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&)
        ../../gccrs/gcc/rust/typecheck/rust-hir-type-check-item.cc:45

rustc output

error[E0435]: attempt to use a non-constant value in a constant
 --> <source>:6:11
  |
6 |     Bar = y,      
  |           ^ non-constant value
  |
help: consider using `const` instead of `let

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