;;; TOOL: wat2wasm
;;; ERROR: 1
(module
  ;; too many results
  (func
    i32.const 0
    if (result i32 i64)
      i32.const 0
      i32.const 0
      i64.const 0
    else
      i32.const 0
      i32.const 0
      i64.const 0
    end
    return)

  ;; too few results
  (func
    i32.const 0
    if (result i32 f64)
      f64.const 0
    else
      f64.const 0
    end
    return)

  ;; result type mismatch
  (func
    i32.const 0
    if (result i32 f64)
      f32.const 0
      f64.const 0
    else
      f32.const 0
      f64.const 0
    end
    return)

  ;; too few params
  (func
    i32.const 0
    if (param i32)
      drop
    else
      drop
    end)

  ;; param type mismatch
  (func
    f32.const 0
    i32.const 0
    if (param i32)
      drop
    else
      drop
    end)
)
(;; STDERR ;;;
out/test/typecheck/bad-if-multi-mismatch.txt:10:7: error: type mismatch in if true branch, expected [] but got [i32]
      i64.const 0
      ^^^^^^^^^
out/test/typecheck/bad-if-multi-mismatch.txt:15:5: error: type mismatch in if false branch, expected [] but got [i32]
    end
    ^^^
out/test/typecheck/bad-if-multi-mismatch.txt:22:7: error: type mismatch in if true branch, expected [i32, f64] but got [f64]
      f64.const 0
      ^^^^^^^^^
out/test/typecheck/bad-if-multi-mismatch.txt:25:5: error: type mismatch in if false branch, expected [i32, f64] but got [f64]
    end
    ^^^
out/test/typecheck/bad-if-multi-mismatch.txt:33:7: error: type mismatch in if true branch, expected [i32, f64] but got [f32, f64]
      f64.const 0
      ^^^^^^^^^
out/test/typecheck/bad-if-multi-mismatch.txt:37:5: error: type mismatch in if false branch, expected [i32, f64] but got [f32, f64]
    end
    ^^^
out/test/typecheck/bad-if-multi-mismatch.txt:43:5: error: type mismatch in if, expected [i32] but got []
    if (param i32)
    ^^
out/test/typecheck/bad-if-multi-mismatch.txt:53:5: error: type mismatch in if, expected [i32] but got [f32]
    if (param i32)
    ^^
;;; STDERR ;;)
