cairo-lang-semantic 2.18.0

Cairo semantic model.
Documentation
//! > Test let

//! > test_runner_name
test_expr_semantics(expect_diagnostics: false)

//! > expr_code
{
    let a: felt252 = 3;
    let _b = a;
}

//! > expected_semantics
Block(
    ExprBlock {
        statements: [
            Let(
                StatementLet {
                    pattern: Variable(
                        a,
                    ),
                    expr: Literal(
                        ExprNumericLiteral {
                            value: 3,
                            ty: core::felt252,
                        },
                    ),
                    else_clause: None,
                },
            ),
            Let(
                StatementLet {
                    pattern: Variable(
                        _b,
                    ),
                    expr: Var(
                        LocalVarId(test::a),
                    ),
                    else_clause: None,
                },
            ),
        ],
        tail: None,
        ty: (),
    },
)

//! > expected_diagnostics

//! > ==========================================================================

//! > Test fixed size array

//! > test_runner_name
test_expr_semantics(expect_diagnostics: false)

//! > expr_code
{
    let _x: [u8; 3] = [1, 2, 3];
}

//! > expected_semantics
Block(
    ExprBlock {
        statements: [
            Let(
                StatementLet {
                    pattern: Variable(
                        _x,
                    ),
                    expr: FixedSizeArray(
                        ExprFixedSizeArray {
                            items: Items(
                                [
                                    Literal(
                                        ExprNumericLiteral {
                                            value: 1,
                                            ty: core::integer::u8,
                                        },
                                    ),
                                    Literal(
                                        ExprNumericLiteral {
                                            value: 2,
                                            ty: core::integer::u8,
                                        },
                                    ),
                                    Literal(
                                        ExprNumericLiteral {
                                            value: 3,
                                            ty: core::integer::u8,
                                        },
                                    ),
                                ],
                            ),
                            ty: [core::integer::u8; 3],
                        },
                    ),
                    else_clause: None,
                },
            ),
        ],
        tail: None,
        ty: (),
    },
)

//! > expected_diagnostics