Skip to content

Using a type alias on an enum prevents using that enum's variants as the values for other enum variants, with "error: constant evaluation error: unresolved path in constant expression" #30936

Closed
@bstrie

Description

@bstrie

Here is a program that works just fine:

enum Foo {
    Foofoo = 0
}

enum Bar {
    Barbar = Foo::Foofoo as isize
}

fn main() {}

Here is that same program with a seemingly spurious error:

enum Foo {
    Foofoo = 0
}

type Qux = Foo;

enum Bar {
    Barbar = Qux::Foofoo as isize
}

fn main() {}

Error:

<anon>:8:14: 8:25 error: constant evaluation error: unresolved path in constant expression [E0080]
<anon>:8     Barbar = Qux::Foofoo as isize
                      ^~~~~~~~~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions