Skip to content

struct variants define a ctor function as if they were regular variants #18252

@osa1

Description

@osa1

lib.rs:

#![feature(struct_variant)]
pub mod en {
    pub enum MyEnum {
        Variant1(int),
        Variant2{pub name: String}
    }
}

main.rs:

extern crate lib;

use lib::en;

fn main() {
    let enu = en::Variant1(2i);
    let enu2 = en::Variant2("Joe".to_string());
}

error:

main.rs:7:16: 7:28 error: unresolved name `en::Variant2`.
main.rs:7     let enu2 = en::Variant2("Joe".to_string());
                         ^~~~~~~~~~~~
error: aborting due to previous error

But this works:

#![feature(struct_variant)]
pub mod en {
    pub enum MyEnum {
        Variant1(int),
        Variant2{pub name: String}
    }
}

fn main() {
    let enu = en::Variant1(2i);
    let enu2 = en::Variant2("Joe".to_string());
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions