//! > Test match 0.

//! > test_function_name
test_function_lowering

//! > function
fn foo(a: felt) -> felt {
    let x = 7;
    match x {
        0 => a + 1,
        _ => x,
    }
}

//! > function_name
foo

//! > module_code

//! > semantic_diagnostics

//! > lowering_diagnostics

//! > lowering_format
blk0:
Inputs:
Statements:
  (v2: core::felt) <- 1u
  (v3: core::felt) <- core::felt_add(v0, v2)
Drops: v1, v2
End:
  Callsite(v3)

blk1:
Inputs: v4: core::NonZero::<core::felt>
Statements:
Drops: v4
End:
  Callsite(v1)

blk2 (root):
Inputs: v0: core::felt
Statements:
  (v1: core::felt) <- 7u
  (v5: core::felt) <- match core::felt_jump_nz(v1) {
    () => blk0,
    (v4) => blk1,
  }
Drops: v0, v1
End:
  Callsite(v5)

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

//! > Test match zero with non-zero value.

//! > test_function_name
test_function_lowering

//! > function
fn foo() -> felt {
    let x = 7;
    match x {
        12 => x,
        _ => 7,
    }
}

//! > function_name
foo

//! > module_code

//! > semantic_diagnostics

//! > lowering_diagnostics
error: Match with a non-zero value is not supported.
 --> lib.cairo:4:9
        12 => x,
        ^^

//! > lowering_format

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

//! > Test unsupported match zero.

//! > test_function_name
test_function_lowering

//! > function
fn foo() -> felt {
  let x = 7;
  match x {
      0 => x,
      1 => 7,
  }
}

//! > function_name
foo

//! > module_code

//! > semantic_diagnostics

//! > lowering_diagnostics
error: Only match zero (match ... { 0 => ..., _ => ... }) is currently supported.
 --> lib.cairo:3:3
  match x {
  ^*******^

//! > lowering_format
