cairo-lang-semantic 2.18.0

Cairo semantic model.
Documentation
//! > Test enum

//! > test_runner_name
test_function_diagnostics(expect_diagnostics: true)

//! > function_code
enum A {
    a: (),
    b: felt252,
}

fn foo() {
    let _a: A = A::a(());
    let _a: A = A::b(5);
    let _b: bool = bool::True(());
    let _b: bool = true;

    // Failures.
    let _a: A = A::a();
    let _a: A = A::b(1, 2);
    let _a: A = A::a::a(());
    let _a: A = A::c();
    let _a: A = A::d;
    let _a: A = A;
}

//! > function_name
foo

//! > expected_diagnostics
error[E2030]: Wrong number of arguments. Expected 1, found: 0
 --> lib.cairo:13:17
    let _a: A = A::a();
                ^^^^^^

error[E2030]: Wrong number of arguments. Expected 1, found: 2
 --> lib.cairo:14:17
    let _a: A = A::b(1, 2);
                ^^^^^^^^^^

error[E2086]: Invalid path.
 --> lib.cairo:15:23
    let _a: A = A::a::a(());
                      ^

error[E2060]: Enum "A" has no variant "c"
 --> lib.cairo:16:20
    let _a: A = A::c();
                   ^

error[E2060]: Enum "A" has no variant "d"
 --> lib.cairo:17:20
    let _a: A = A::d;
                   ^

error[E2005]: Expected variable or constant, found type.
 --> lib.cairo:18:17
    let _a: A = A;
                ^