cairo-lang-semantic 2.18.0

Cairo semantic model.
Documentation
//! > Test logical operators.

//! > test_runner_name
test_function_diagnostics(expect_diagnostics: true)

//! > function_code
fn foo(a: u128, b: u128, c: u128) -> bool {
    a && b || c
}

//! > function_name
foo

//! > expected_diagnostics
error[E2039]: Expected type "core::bool", found: "core::integer::u128".
 --> lib.cairo:2:5
    a && b || c
    ^

error[E2039]: Expected type "core::bool", found: "core::integer::u128".
 --> lib.cairo:2:10
    a && b || c
         ^

error[E2039]: Expected type "core::bool", found: "core::integer::u128".
 --> lib.cairo:2:15
    a && b || c
              ^

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

//! > Single sided if.

//! > test_runner_name
test_function_diagnostics(expect_diagnostics: true)

//! > function_code
fn foo(a: bool, b: bool, c: bool) -> bool {
    bar(a, b, c)
}

//! > function_name
foo

//! > module_code
fn bar<S, T>(a: S, b: bool, c: T) -> bool {
    a && Default::default() || c
}

//! > expected_diagnostics
error[E2039]: Expected type "core::bool", found: "S".
 --> lib.cairo:2:5
    a && Default::default() || c
    ^

error[E2039]: Expected type "core::bool", found: "T".
 --> lib.cairo:2:32
    a && Default::default() || c
                               ^