summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/type-checker.cc204
-rw-r--r--src/type-checker.h19
-rw-r--r--test/binary/bad-typecheck-missing-drop.txt2
-rw-r--r--test/binary/linking-section.txt1
-rw-r--r--test/exceptions/bad-throw.txt2
-rw-r--r--test/parse/expr/bad-binary-one-expr.txt4
-rw-r--r--test/parse/expr/bad-compare-one-expr.txt4
-rw-r--r--test/parse/expr/bad-setlocal-no-value.txt2
-rw-r--r--test/parse/func/bad-sig-result-type-mismatch.txt2
-rw-r--r--test/parse/func/bad-sig-result-type-not-void.txt2
-rw-r--r--test/regress/regress-10.txt2
-rw-r--r--test/regress/regress-11.txt2
-rw-r--r--test/regress/regress-5.txt2
-rw-r--r--test/spec/block.txt44
-rw-r--r--test/spec/br.txt8
-rw-r--r--test/spec/br_if.txt42
-rw-r--r--test/spec/br_table.txt17
-rw-r--r--test/spec/call.txt22
-rw-r--r--test/spec/call_indirect.txt26
-rw-r--r--test/spec/func.txt56
-rw-r--r--test/spec/get_local.txt12
-rw-r--r--test/spec/if.txt64
-rw-r--r--test/spec/labels.txt6
-rw-r--r--test/spec/loop.txt18
-rw-r--r--test/spec/nop.txt8
-rw-r--r--test/spec/return.txt6
-rw-r--r--test/spec/select.txt2
-rw-r--r--test/spec/set_local.txt34
-rw-r--r--test/spec/store_retval.txt26
-rw-r--r--test/spec/tee_local.txt34
-rw-r--r--test/spec/typecheck.txt463
-rw-r--r--test/spec/unreached-invalid.txt220
-rw-r--r--test/typecheck/bad-atomic-type-mismatch.txt386
-rw-r--r--test/typecheck/bad-binary-type-mismatch-1.txt2
-rw-r--r--test/typecheck/bad-binary-type-mismatch-2.txt2
-rw-r--r--test/typecheck/bad-brtable-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-call-result-mismatch.txt12
-rw-r--r--test/typecheck/bad-call-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-callimport-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-callindirect-func-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-callindirect-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-cast-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-compare-type-mismatch-1.txt2
-rw-r--r--test/typecheck/bad-compare-type-mismatch-2.txt2
-rw-r--r--test/typecheck/bad-convert-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-expr-if.txt5
-rw-r--r--test/typecheck/bad-function-result-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-grow-memory-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-if-condition-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-if-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-if-value-void.txt2
-rw-r--r--test/typecheck/bad-load-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-nested-br.txt2
-rw-r--r--test/typecheck/bad-return-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-select-cond.txt4
-rw-r--r--test/typecheck/bad-select-value0.txt11
-rw-r--r--test/typecheck/bad-select-value1.txt4
-rw-r--r--test/typecheck/bad-setlocal-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-store-index-type-mismatch.txt2
-rw-r--r--test/typecheck/bad-unary-type-mismatch.txt2
60 files changed, 879 insertions, 943 deletions
diff --git a/src/type-checker.cc b/src/type-checker.cc
index 87650cf6..b7c76323 100644
--- a/src/type-checker.cc
+++ b/src/type-checker.cc
@@ -96,17 +96,10 @@ Result TypeChecker::PeekType(Index depth, Type* out_type) {
return Result::Ok;
}
-Result TypeChecker::TopType(Type* out_type) {
- return PeekType(0, out_type);
-}
-
-Result TypeChecker::PopType(Type* out_type) {
- Label* label;
- CHECK_RESULT(TopLabel(&label));
- Result result = TopType(out_type);
- if (type_stack_.size() > label->type_stack_limit)
- type_stack_.pop_back();
- return result;
+Result TypeChecker::PeekAndCheckType(Index depth, Type expected) {
+ Type actual = Type::Any;
+ Result result = PeekType(depth, &actual);
+ return result | CheckType(actual, expected);
}
Result TypeChecker::DropTypes(size_t drop_count) {
@@ -133,52 +126,33 @@ void TypeChecker::PushTypes(const TypeVector& types) {
PushType(type);
}
-Result TypeChecker::CheckTypeStackLimit(size_t expected, const char* desc) {
- Label* label;
- CHECK_RESULT(TopLabel(&label));
- size_t avail = type_stack_.size() - label->type_stack_limit;
- if (!label->unreachable && expected > avail) {
- PrintError("type stack size too small at %s. got %" PRIzd
- ", expected at least %" PRIzd,
- desc, avail, expected);
- return Result::Error;
- }
- return Result::Ok;
-}
-
Result TypeChecker::CheckTypeStackEnd(const char* desc) {
Label* label;
CHECK_RESULT(TopLabel(&label));
- if (type_stack_.size() != label->type_stack_limit) {
- PrintError("type stack at end of %s is %" PRIzd ", expected %" PRIzd, desc,
- type_stack_.size(), label->type_stack_limit);
- return Result::Error;
- }
- return Result::Ok;
+ Result result = (type_stack_.size() == label->type_stack_limit)
+ ? Result::Ok
+ : Result::Error;
+ PrintStackIfFailed(result, desc);
+ return result;
}
-Result TypeChecker::CheckType(Type actual, Type expected, const char* desc) {
- if (expected != actual && expected != Type::Any && actual != Type::Any) {
- PrintError("type mismatch in %s, expected %s but got %s.", desc,
- GetTypeName(expected), GetTypeName(actual));
- return Result::Error;
- }
- return Result::Ok;
+Result TypeChecker::CheckType(Type actual, Type expected) {
+ return (expected == actual || expected == Type::Any || actual == Type::Any)
+ ? Result::Ok
+ : Result::Error;
}
-Result TypeChecker::CheckSignature(const TypeVector& sig, const char* desc) {
- Result result = CheckTypeStackLimit(sig.size(), desc);
- for (size_t i = 0; i < sig.size(); ++i) {
- Type actual = Type::Any;
- result |= PeekType(sig.size() - i - 1, &actual);
- result |= CheckType(actual, sig[i], desc);
- }
+Result TypeChecker::CheckSignature(const TypeVector& sig) {
+ Result result = Result::Ok;
+ for (size_t i = 0; i < sig.size(); ++i)
+ result |= PeekAndCheckType(sig.size() - i - 1, sig[i]);
return result;
}
Result TypeChecker::PopAndCheckSignature(const TypeVector& sig,
const char* desc) {
- Result result = CheckSignature(sig, desc);
+ Result result = CheckSignature(sig);
+ PrintStackIfFailed(result, desc, sig);
result |= DropTypes(sig.size());
return result;
}
@@ -186,12 +160,8 @@ Result TypeChecker::PopAndCheckSignature(const TypeVector& sig,
Result TypeChecker::PopAndCheckCall(const TypeVector& param_types,
const TypeVector& result_types,
const char* desc) {
- Result result = CheckTypeStackLimit(param_types.size(), desc);
- for (size_t i = 0; i < param_types.size(); ++i) {
- Type actual = Type::Any;
- result |= PeekType(param_types.size() - i - 1, &actual);
- result |= CheckType(actual, param_types[i], desc);
- }
+ Result result = CheckSignature(param_types);
+ PrintStackIfFailed(result, desc, param_types);
result |= DropTypes(param_types.size());
PushTypes(result_types);
return result;
@@ -199,10 +169,9 @@ Result TypeChecker::PopAndCheckCall(const TypeVector& param_types,
Result TypeChecker::PopAndCheck1Type(Type expected, const char* desc) {
Result result = Result::Ok;
- Type actual = Type::Any;
- result |= CheckTypeStackLimit(1, desc);
- result |= PopType(&actual);
- result |= CheckType(actual, expected, desc);
+ result |= PeekAndCheckType(0, expected);
+ PrintStackIfFailed(result, desc, expected);
+ result |= DropTypes(1);
return result;
}
@@ -210,13 +179,10 @@ Result TypeChecker::PopAndCheck2Types(Type expected1,
Type expected2,
const char* desc) {
Result result = Result::Ok;
- Type actual1 = Type::Any;
- Type actual2 = Type::Any;
- result |= CheckTypeStackLimit(2, desc);
- result |= PopType(&actual2);
- result |= PopType(&actual1);
- result |= CheckType(actual1, expected1, desc);
- result |= CheckType(actual2, expected2, desc);
+ result |= PeekAndCheckType(0, expected2);
+ result |= PeekAndCheckType(1, expected1);
+ PrintStackIfFailed(result, desc, expected1, expected2);
+ result |= DropTypes(2);
return result;
}
@@ -225,29 +191,11 @@ Result TypeChecker::PopAndCheck3Types(Type expected1,
Type expected3,
const char* desc) {
Result result = Result::Ok;
- Type actual1 = Type::Any;
- Type actual2 = Type::Any;
- Type actual3 = Type::Any;
- result |= CheckTypeStackLimit(3, desc);
- result |= PopType(&actual3);
- result |= PopType(&actual2);
- result |= PopType(&actual1);
- result |= CheckType(actual1, expected1, desc);
- result |= CheckType(actual2, expected2, desc);
- result |= CheckType(actual3, expected3, desc);
- return result;
-}
-
-Result TypeChecker::PopAndCheck2TypesAreEqual(Type* out_type,
- const char* desc) {
- Result result = Result::Ok;
- Type right = Type::Any;
- Type left = Type::Any;
- result |= CheckTypeStackLimit(2, desc);
- result |= PopType(&right);
- result |= PopType(&left);
- result |= CheckType(left, right, desc);
- *out_type = right;
+ result |= PeekAndCheckType(0, expected3);
+ result |= PeekAndCheckType(1, expected2);
+ result |= PeekAndCheckType(2, expected1);
+ PrintStackIfFailed(result, desc, expected1, expected2, expected3);
+ result |= DropTypes(3);
return result;
}
@@ -272,6 +220,68 @@ Result TypeChecker::CheckOpcode3(Opcode opcode) {
return result;
}
+static std::string TypesToString(const TypeVector& types,
+ const char* prefix = nullptr) {
+ std::string result = "[";
+ if (prefix)
+ result += prefix;
+
+ for (size_t i = 0; i < types.size(); ++i) {
+ result += GetTypeName(types[i]);
+ if (i < types.size() - 1)
+ result += ", ";
+ }
+ result += "]";
+ return result;
+}
+
+void TypeChecker::PrintStackIfFailed(Result result,
+ const char* desc,
+ const TypeVector& expected) {
+ if (Failed(result)) {
+ size_t limit = 0;
+ Label* label;
+ if (Succeeded(TopLabel(&label))) {
+ limit = label->type_stack_limit;
+ }
+
+ TypeVector actual;
+ size_t max_depth = type_stack_.size() - limit;
+
+ // In general we want to print as many values of the actual stack as were
+ // expected. However, if the stack was expected to be empty, we should
+ // print some amount of the actual stack.
+ size_t actual_size;
+ if (expected.size() == 0) {
+ // Don't print too many elements if the stack is really deep.
+ const size_t kMaxActualStackToPrint = 4;
+ actual_size = std::min(kMaxActualStackToPrint, max_depth);
+ } else {
+ actual_size = std::min(expected.size(), max_depth);
+ }
+
+ bool incomplete_actual_stack = actual_size != max_depth;
+
+ for (size_t i = 0; i < actual_size; ++i) {
+ Type type;
+ Result result = PeekType(actual_size - i - 1, &type);
+ WABT_USE(result);
+ assert(Succeeded(result));
+ actual.push_back(type);
+ }
+
+ std::string message = "type mismatch in ";
+ message += desc;
+ message += ", expected ";
+ message += TypesToString(expected);
+ message += " but got ";
+ message +=
+ TypesToString(actual, incomplete_actual_stack ? "... " : nullptr);
+
+ PrintError("%s", message.c_str());
+ }
+}
+
Result TypeChecker::BeginFunction(const TypeVector* sig) {
type_stack_.clear();
label_stack_.clear();
@@ -309,7 +319,8 @@ Result TypeChecker::OnBr(Index depth) {
Label* label;
CHECK_RESULT(GetLabel(depth, &label));
if (label->label_type != LabelType::Loop)
- result |= CheckSignature(label->sig, "br");
+ result |= CheckSignature(label->sig);
+ PrintStackIfFailed(result, "br", label->sig);
CHECK_RESULT(SetUnreachable());
return result;
}
@@ -340,13 +351,16 @@ Result TypeChecker::OnBrTableTarget(Index depth) {
} else {
assert(label->sig.size() <= 1);
label_sig = label->sig.size() == 0 ? Type::Void : label->sig[0];
+
+ result |= CheckSignature(label->sig);
+ PrintStackIfFailed(result, "br_table", label_sig);
}
- result |= CheckType(br_table_sig_, label_sig, "br_table");
+ // Make sure this label's signature is consistent with the previous labels'
+ // signatures.
+ result |= CheckType(br_table_sig_, label_sig);
br_table_sig_ = label_sig;
- if (label->label_type != LabelType::Loop)
- result |= CheckSignature(label->sig, "br_table");
return result;
}
@@ -404,9 +418,8 @@ Result TypeChecker::OnCurrentMemory() {
Result TypeChecker::OnDrop() {
Result result = Result::Ok;
- Type type = Type::Any;
- result |= CheckTypeStackLimit(1, "drop");
- result |= PopType(&type);
+ result |= DropTypes(1);
+ PrintStackIfFailed(result, "drop", Type::Any);
return result;
}
@@ -528,9 +541,12 @@ Result TypeChecker::OnReturn() {
Result TypeChecker::OnSelect() {
Result result = Result::Ok;
- result |= PopAndCheck1Type(Type::I32, "select");
Type type = Type::Any;
- result |= PopAndCheck2TypesAreEqual(&type, "select");
+ result |= PeekAndCheckType(0, Type::I32);
+ result |= PeekType(1, &type);
+ result |= PeekAndCheckType(2, type);
+ PrintStackIfFailed(result, "select", Type::I32, type, type);
+ result |= DropTypes(3);
PushType(type);
return result;
}
diff --git a/src/type-checker.h b/src/type-checker.h
index 1176f95d..b2e32045 100644
--- a/src/type-checker.h
+++ b/src/type-checker.h
@@ -104,15 +104,13 @@ class TypeChecker {
Result PopLabel();
Result CheckLabelType(Label* label, LabelType label_type);
Result PeekType(Index depth, Type* out_type);
- Result TopType(Type* out_type);
- Result PopType(Type* out_type);
+ Result PeekAndCheckType(Index depth, Type expected);
Result DropTypes(size_t drop_count);
void PushType(Type type);
void PushTypes(const TypeVector& types);
- Result CheckTypeStackLimit(size_t expected, const char* desc);
Result CheckTypeStackEnd(const char* desc);
- Result CheckType(Type actual, Type expected, const char* desc);
- Result CheckSignature(const TypeVector& sig, const char* desc);
+ Result CheckType(Type actual, Type expected);
+ Result CheckSignature(const TypeVector& sig);
Result PopAndCheckSignature(const TypeVector& sig, const char* desc);
Result PopAndCheckCall(const TypeVector& param_types,
const TypeVector& result_types,
@@ -123,12 +121,21 @@ class TypeChecker {
Type expected2,
Type expected3,
const char* desc);
- Result PopAndCheck2TypesAreEqual(Type* out_type, const char* desc);
Result CheckOpcode1(Opcode opcode);
Result CheckOpcode2(Opcode opcode);
Result CheckOpcode3(Opcode opcode);
Result OnEnd(Label* label, const char* sig_desc, const char* end_desc);
+ template <typename... Args>
+ void PrintStackIfFailed(Result result, const char* desc, Args... args) {
+ // Minor optimzation, check result before constructing the vector to pass
+ // to the other overload of PrintStackIfFailed.
+ if (Failed(result))
+ PrintStackIfFailed(result, desc, {args...});
+ }
+
+ void PrintStackIfFailed(Result, const char* desc, const TypeVector&);
+
ErrorCallback error_callback_;
TypeVector type_stack_;
std::vector<Label> label_stack_;
diff --git a/test/binary/bad-typecheck-missing-drop.txt b/test/binary/bad-typecheck-missing-drop.txt
index daec1479..16046ded 100644
--- a/test/binary/bad-typecheck-missing-drop.txt
+++ b/test/binary/bad-typecheck-missing-drop.txt
@@ -15,6 +15,6 @@ section(CODE) {
}
(;; STDERR ;;;
Error running "wasm2wat":
-out/test/binary/bad-typecheck-missing-drop/bad-typecheck-missing-drop.wasm:000001c: error: type stack at end of function is 1, expected 0
+out/test/binary/bad-typecheck-missing-drop/bad-typecheck-missing-drop.wasm:000001c: error: type mismatch in function, expected [] but got [i32]
;;; STDERR ;;)
diff --git a/test/binary/linking-section.txt b/test/binary/linking-section.txt
index 466929b8..caea7ebe 100644
--- a/test/binary/linking-section.txt
+++ b/test/binary/linking-section.txt
@@ -41,5 +41,4 @@ Custom:
- segment info [count=2]
- 0: data1 align=4 flags=0
- 1: data2 align=8 flags=0
-
;;; STDOUT ;;)
diff --git a/test/exceptions/bad-throw.txt b/test/exceptions/bad-throw.txt
index b02b3e6e..d150dec2 100644
--- a/test/exceptions/bad-throw.txt
+++ b/test/exceptions/bad-throw.txt
@@ -9,7 +9,7 @@
)
)
(;; STDERR ;;;
-out/test/exceptions/bad-throw.txt:8:6: error: type mismatch in throw, expected i32 but got i64.
+out/test/exceptions/bad-throw.txt:8:6: error: type mismatch in throw, expected [i32] but got [i64]
(throw $ex)
^^^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-binary-one-expr.txt b/test/parse/expr/bad-binary-one-expr.txt
index f4f0cf33..fb37156f 100644
--- a/test/parse/expr/bad-binary-one-expr.txt
+++ b/test/parse/expr/bad-binary-one-expr.txt
@@ -3,10 +3,10 @@
i32.const 0
i32.add))
(;; STDERR ;;;
-out/test/parse/expr/bad-binary-one-expr.txt:4:4: error: type stack size too small at i32.add. got 1, expected at least 2
+out/test/parse/expr/bad-binary-one-expr.txt:4:4: error: type mismatch in i32.add, expected [i32, i32] but got [i32]
i32.add))
^^^^^^^
-out/test/parse/expr/bad-binary-one-expr.txt:4:4: error: type stack at end of function is 1, expected 0
+out/test/parse/expr/bad-binary-one-expr.txt:4:4: error: type mismatch in function, expected [] but got [i32, i32]
i32.add))
^^^^^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-compare-one-expr.txt b/test/parse/expr/bad-compare-one-expr.txt
index 5c1eb779..909da946 100644
--- a/test/parse/expr/bad-compare-one-expr.txt
+++ b/test/parse/expr/bad-compare-one-expr.txt
@@ -3,10 +3,10 @@
i32.const 0
i32.lt_s))
(;; STDERR ;;;
-out/test/parse/expr/bad-compare-one-expr.txt:4:11: error: type stack size too small at i32.lt_s. got 1, expected at least 2
+out/test/parse/expr/bad-compare-one-expr.txt:4:11: error: type mismatch in i32.lt_s, expected [i32, i32] but got [i32]
i32.lt_s))
^^^^^^^^
-out/test/parse/expr/bad-compare-one-expr.txt:4:11: error: type stack at end of function is 1, expected 0
+out/test/parse/expr/bad-compare-one-expr.txt:4:11: error: type mismatch in function, expected [] but got [i32, i32]
i32.lt_s))
^^^^^^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-setlocal-no-value.txt b/test/parse/expr/bad-setlocal-no-value.txt
index 23050fbe..358e7d7e 100644
--- a/test/parse/expr/bad-setlocal-no-value.txt
+++ b/test/parse/expr/bad-setlocal-no-value.txt
@@ -3,7 +3,7 @@
(local i32)
set_local 0))
(;; STDERR ;;;
-out/test/parse/expr/bad-setlocal-no-value.txt:4:3: error: type stack size too small at set_local. got 0, expected at least 1
+out/test/parse/expr/bad-setlocal-no-value.txt:4:3: error: type mismatch in set_local, expected [i32] but got []
set_local 0))
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/parse/func/bad-sig-result-type-mismatch.txt b/test/parse/func/bad-sig-result-type-mismatch.txt
index b45ba8af..6910fd17 100644
--- a/test/parse/func/bad-sig-result-type-mismatch.txt
+++ b/test/parse/func/bad-sig-result-type-mismatch.txt
@@ -6,7 +6,7 @@
out/test/parse/func/bad-sig-result-type-mismatch.txt:4:4: error: type mismatch for result 0 of function. got i64, expected f32
(func (type $t) (param i32) (result i64)))
^^^^
-out/test/parse/func/bad-sig-result-type-mismatch.txt:4:4: error: type stack size too small at implicit return. got 0, expected at least 1
+out/test/parse/func/bad-sig-result-type-mismatch.txt:4:4: error: type mismatch in implicit return, expected [i64] but got []
(func (type $t) (param i32) (result i64)))
^^^^
;;; STDERR ;;)
diff --git a/test/parse/func/bad-sig-result-type-not-void.txt b/test/parse/func/bad-sig-result-type-not-void.txt
index c081b80b..ede208c0 100644
--- a/test/parse/func/bad-sig-result-type-not-void.txt
+++ b/test/parse/func/bad-sig-result-type-not-void.txt
@@ -6,7 +6,7 @@
out/test/parse/func/bad-sig-result-type-not-void.txt:4:4: error: expected 0 results, got 1
(func (type $t) (param i32) (result f32)))
^^^^
-out/test/parse/func/bad-sig-result-type-not-void.txt:4:4: error: type stack size too small at implicit return. got 0, expected at least 1
+out/test/parse/func/bad-sig-result-type-not-void.txt:4:4: error: type mismatch in implicit return, expected [f32] but got []
(func (type $t) (param i32) (result f32)))
^^^^
;;; STDERR ;;)
diff --git a/test/regress/regress-10.txt b/test/regress/regress-10.txt
index d19dd008..7617bbd3 100644
--- a/test/regress/regress-10.txt
+++ b/test/regress/regress-10.txt
@@ -7,7 +7,7 @@
tee_local 0
end))
(;; STDERR ;;;
-out/test/regress/regress-10.txt:7:7: error: type stack at end of block is 1, expected 0
+out/test/regress/regress-10.txt:7:7: error: type mismatch in block, expected [] but got [i32]
tee_local 0
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/regress/regress-11.txt b/test/regress/regress-11.txt
index 32b2f4a3..56bfb006 100644
--- a/test/regress/regress-11.txt
+++ b/test/regress/regress-11.txt
@@ -9,7 +9,7 @@
i32.const 1
end))
(;; STDERR ;;;
-out/test/regress/regress-11.txt:7:9: error: type stack at end of block is 1, expected 0
+out/test/regress/regress-11.txt:7:9: error: type mismatch in block, expected [] but got [i32]
br_if 1
^^^^^
;;; STDERR ;;)
diff --git a/test/regress/regress-5.txt b/test/regress/regress-5.txt
index b5dfa098..25a6488b 100644
--- a/test/regress/regress-5.txt
+++ b/test/regress/regress-5.txt
@@ -117,7 +117,7 @@
(i64.const 0)) ;; deliberate type-check error
)
(;; STDERR ;;;
-out/test/regress/regress-5.txt:117:6: error: type mismatch in implicit return, expected i32 but got i64.
+out/test/regress/regress-5.txt:117:6: error: type mismatch in implicit return, expected [i32] but got [i64]
(i64.const 0)) ;; deliberate type-check error
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/spec/block.txt b/test/spec/block.txt
index 597decd8..29ce28ac 100644
--- a/test/spec/block.txt
+++ b/test/spec/block.txt
@@ -2,70 +2,70 @@
;;; STDIN_FILE: third_party/testsuite/block.wast
(;; STDOUT ;;;
out/third_party/testsuite/block.wast:159: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:163: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:167: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:171: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:176: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
000001c: error: OnEndExpr callback failed
out/third_party/testsuite/block.wast:182: assert_invalid passed:
- error: type stack size too small at block. got 0, expected at least 1
+ error: type mismatch in block, expected [i32] but got []
000001b: error: OnEndExpr callback failed
out/third_party/testsuite/block.wast:188: assert_invalid passed:
- error: type stack size too small at block. got 0, expected at least 1
+ error: type mismatch in block, expected [i32] but got []
000001c: error: OnEndExpr callback failed
out/third_party/testsuite/block.wast:194: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
+ error: type mismatch in block, expected [i32] but got [f32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/block.wast:200: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000020: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:207: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:213: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:220: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001d: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:226: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:232: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001d: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:238: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:245: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
0000024: error: EndFunctionBody callback failed
out/third_party/testsuite/block.wast:251: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:258: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001f: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:264: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
0000020: error: OnBrExpr callback failed
out/third_party/testsuite/block.wast:273: assert_invalid passed:
- error: type stack size too small at i32.ctz. got 0, expected at least 1
+ error: type mismatch in i32.ctz, expected [i32] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/block.wast:279: assert_invalid passed:
- error: type stack size too small at i64.ctz. got 0, expected at least 1
+ error: type mismatch in i64.ctz, expected [i64] but got []
000001f: error: OnUnaryExpr callback failed
out/third_party/testsuite/block.wast:285: assert_invalid passed:
- error: type stack size too small at i64.ctz. got 0, expected at least 1
+ error: type mismatch in i64.ctz, expected [i64] but got []
0000020: error: OnUnaryExpr callback failed
out/third_party/testsuite/block.wast:293: assert_malformed passed:
out/third_party/testsuite/block/block.23.wast:1:17: error: unexpected label "$l"
diff --git a/test/spec/br.txt b/test/spec/br.txt
index 7752f678..dc82e9ed 100644
--- a/test/spec/br.txt
+++ b/test/spec/br.txt
@@ -2,16 +2,16 @@
;;; STDIN_FILE: third_party/testsuite/br.wast
(;; STDOUT ;;;
out/third_party/testsuite/br.wast:411: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/br.wast:418: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001d: error: OnBrExpr callback failed
out/third_party/testsuite/br.wast:424: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000020: error: OnBrExpr callback failed
out/third_party/testsuite/br.wast:430: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/br.wast:437: assert_invalid passed:
error: invalid depth: 1 (max 0)
diff --git a/test/spec/br_if.txt b/test/spec/br_if.txt
index b2429002..99d54983 100644
--- a/test/spec/br_if.txt
+++ b/test/spec/br_if.txt
@@ -2,67 +2,67 @@
;;; STDIN_FILE: third_party/testsuite/br_if.wast
(;; STDOUT ;;;
out/third_party/testsuite/br_if.wast:191: assert_invalid passed:
- error: type stack size too small at i32.ctz. got 0, expected at least 1
+ error: type mismatch in i32.ctz, expected [i32] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/br_if.wast:195: assert_invalid passed:
- error: type stack size too small at i64.ctz. got 0, expected at least 1
+ error: type mismatch in i64.ctz, expected [i64] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/br_if.wast:199: assert_invalid passed:
- error: type stack size too small at f32.neg. got 0, expected at least 1
+ error: type mismatch in f32.neg, expected [f32] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/br_if.wast:203: assert_invalid passed:
- error: type stack size too small at f64.neg. got 0, expected at least 1
+ error: type mismatch in f64.neg, expected [f64] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/br_if.wast:208: assert_invalid passed:
- error: type stack size too small at i32.ctz. got 0, expected at least 1
+ error: type mismatch in i32.ctz, expected [i32] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/br_if.wast:212: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [i64]
000001d: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:216: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got f32.
+ error: type mismatch in br_if, expected [i32] but got [f32]
0000020: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:220: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [i64]
000001d: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:225: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001e: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:231: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001e: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:237: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/br_if.wast:243: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/br_if.wast:250: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001f: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:256: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001f: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:262: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [i64]
0000020: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:270: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [i64]
0000020: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:279: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001c: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:285: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [i64]
000001d: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:291: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
000001f: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:297: assert_invalid passed:
- error: type stack size too small at br_if. got 0, expected at least 1
+ error: type mismatch in br_if, expected [i32] but got []
0000022: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:303: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got i64.
+ error: type mismatch in br_if, expected [i32] but got [... i64]
0000020: error: OnBrIfExpr callback failed
out/third_party/testsuite/br_if.wast:310: assert_invalid passed:
error: invalid depth: 1 (max 0)
diff --git a/test/spec/br_table.txt b/test/spec/br_table.txt
index 61510311..e9c79b94 100644
--- a/test/spec/br_table.txt
+++ b/test/spec/br_table.txt
@@ -2,31 +2,30 @@
;;; STDIN_FILE: third_party/testsuite/br_table.wast
(;; STDOUT ;;;
out/third_party/testsuite/br_table.wast:1413: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000022: error: OnEndExpr callback failed
out/third_party/testsuite/br_table.wast:1420: assert_invalid passed:
- error: type stack size too small at br_table. got 0, expected at least 1
+ error: type mismatch in br_table, expected [i32] but got []
0000020: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1426: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got i64.
+ error: type mismatch in br_table, expected [i32] but got [i64]
0000023: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1434: assert_invalid passed:
- error: type mismatch in br_table, expected void but got f32.
0000026: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1446: assert_invalid passed:
- error: type stack size too small at br_table. got 0, expected at least 1
+ error: type mismatch in br_table, expected [i32] but got []
000001f: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1452: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got i64.
+ error: type mismatch in br_table, expected [i32] but got [i64]
000001e: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1458: assert_invalid passed:
- error: type stack size too small at br_table. got 0, expected at least 1
+ error: type mismatch in br_table, expected [i32] but got []
0000021: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1464: assert_invalid passed:
- error: type stack size too small at br_table. got 0, expected at least 1
+ error: type mismatch in br_table, expected [i32] but got []
0000023: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1470: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got i64.
+ error: type mismatch in br_table, expected [i32] but got [... i64]
0000022: error: OnBrTableExpr callback failed
out/third_party/testsuite/br_table.wast:1479: assert_invalid passed:
error: invalid depth: 2 (max 1)
diff --git a/test/spec/call.txt b/test/spec/call.txt
index d79eebfd..d7118633 100644
--- a/test/spec/call.txt
+++ b/test/spec/call.txt
@@ -2,36 +2,34 @@
;;; STDIN_FILE: third_party/testsuite/call.wast
(;; STDOUT ;;;
out/third_party/testsuite/call.wast:160: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/call.wast:167: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got i64.
+ error: type mismatch in i32.eqz, expected [i32] but got [i64]
000001f: error: OnConvertExpr callback failed
out/third_party/testsuite/call.wast:175: assert_invalid passed:
- error: type stack size too small at call. got 0, expected at least 1
+ error: type mismatch in call, expected [i32] but got []
000001e: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:182: assert_invalid passed:
- error: type stack size too small at call. got 0, expected at least 2
+ error: type mismatch in call, expected [f64, i32] but got []
000001f: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:189: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001d: error: EndFunctionBody callback failed
out/third_party/testsuite/call.wast:196: assert_invalid passed:
- error: type stack at end of function is 2, expected 0
+ error: type mismatch in function, expected [] but got [f64, i32]
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/call.wast:204: assert_invalid passed:
- error: type stack size too small at call. got 1, expected at least 2
+ error: type mismatch in call, expected [i32, i32] but got [i32]
0000022: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:211: assert_invalid passed:
- error: type stack size too small at call. got 1, expected at least 2
+ error: type mismatch in call, expected [i32, i32] but got [i32]
0000022: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:218: assert_invalid passed:
- error: type mismatch in call, expected i32 but got f64.
- error: type mismatch in call, expected f64 but got i32.
+ error: type mismatch in call, expected [i32, f64] but got [f64, i32]
000002a: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:225: assert_invalid passed:
- error: type mismatch in call, expected f64 but got i32.
- error: type mismatch in call, expected i32 but got f64.
+ error: type mismatch in call, expected [f64, i32] but got [i32, f64]
000002a: error: OnCallExpr callback failed
out/third_party/testsuite/call.wast:236: assert_invalid passed:
0000019: error: invalid call function index: 1
diff --git a/test/spec/call_indirect.txt b/test/spec/call_indirect.txt
index e3796fbb..9d867bcb 100644
--- a/test/spec/call_indirect.txt
+++ b/test/spec/call_indirect.txt
@@ -5,42 +5,40 @@ out/third_party/testsuite/call_indirect.wast:237: assert_invalid passed:
error: found call_indirect operator, but no table
000001c: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:245: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000023: error: OnConvertExpr callback failed
out/third_party/testsuite/call_indirect.wast:253: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got i64.
+ error: type mismatch in i32.eqz, expected [i32] but got [i64]
0000027: error: OnConvertExpr callback failed
out/third_party/testsuite/call_indirect.wast:262: assert_invalid passed:
- error: type stack size too small at call_indirect. got 0, expected at least 1
+ error: type mismatch in call_indirect, expected [i32] but got []
0000026: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:270: assert_invalid passed:
- error: type stack size too small at call_indirect. got 0, expected at least 2
+ error: type mismatch in call_indirect, expected [f64, i32] but got []
0000027: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:278: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
0000025: error: EndFunctionBody callback failed
out/third_party/testsuite/call_indirect.wast:286: assert_invalid passed:
- error: type stack at end of function is 2, expected 0
+ error: type mismatch in function, expected [] but got [f64, i32]
000002e: error: EndFunctionBody callback failed
out/third_party/testsuite/call_indirect.wast:297: assert_invalid passed:
- error: type stack size too small at call_indirect. got 0, expected at least 1
+ error: type mismatch in call_indirect, expected [i32] but got []
0000027: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:305: assert_invalid passed:
- error: type mismatch in call_indirect, expected i32 but got i64.
+ error: type mismatch in call_indirect, expected [i32] but got [... i64]
0000028: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:314: assert_invalid passed:
- error: type stack size too small at call_indirect. got 1, expected at least 2
+ error: type mismatch in call_indirect, expected [i32, i32] but got [i32]
000002a: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:324: assert_invalid passed:
- error: type stack size too small at call_indirect. got 1, expected at least 2
+ error: type mismatch in call_indirect, expected [i32, i32] but got [i32]
000002a: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:334: assert_invalid passed:
- error: type mismatch in call_indirect, expected i32 but got f64.
- error: type mismatch in call_indirect, expected f64 but got i32.
+ error: type mismatch in call_indirect, expected [i32, f64] but got [f64, i32]
0000032: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:344: assert_invalid passed:
- error: type mismatch in call_indirect, expected f64 but got i32.
- error: type mismatch in call_indirect, expected i32 but got f64.
+ error: type mismatch in call_indirect, expected [f64, i32] but got [i32, f64]
0000032: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/call_indirect.wast:358: assert_invalid passed:
0000021: error: invalid call_indirect signature index
diff --git a/test/spec/func.txt b/test/spec/func.txt
index 770ab734..86d9d234 100644
--- a/test/spec/func.txt
+++ b/test/spec/func.txt
@@ -47,92 +47,92 @@ out/third_party/testsuite/func.wast:450: assert_malformed passed:
...unc (param i32 i32) (result i32)))(func (type $sig) (param i32) (result i3...
^^^^
out/third_party/testsuite/func.wast:461: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001d: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:465: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/func.wast:469: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/func.wast:477: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:481: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/func.wast:485: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001c: error: OnUnaryExpr callback failed
out/third_party/testsuite/func.wast:493: assert_invalid passed:
000000e: error: result count must be 0 or 1
out/third_party/testsuite/func.wast:497: assert_invalid passed:
000000e: error: result count must be 0 or 1
out/third_party/testsuite/func.wast:506: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000019: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:510: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
0000019: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:514: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
0000019: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:518: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
0000019: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:523: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:529: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:535: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/func.wast:542: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
0000019: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:548: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
000001a: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:554: assert_invalid passed:
- error: type mismatch in return, expected i32 but got i64.
+ error: type mismatch in return, expected [i32] but got [i64]
000001b: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:561: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
0000019: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:567: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
000001a: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:573: assert_invalid passed:
- error: type mismatch in return, expected i32 but got i64.
+ error: type mismatch in return, expected [i32] but got [i64]
000001b: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:579: assert_invalid passed:
- error: type mismatch in return, expected i32 but got i64.
+ error: type mismatch in return, expected [i32] but got [i64]
000001b: error: OnReturnExpr callback failed
out/third_party/testsuite/func.wast:586: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001a: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:592: assert_invalid passed:
- error: type mismatch in br, expected i32 but got f32.
+ error: type mismatch in br, expected [i32] but got [f32]
000001f: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:598: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001a: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:604: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:610: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:617: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001c: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:623: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001d: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:629: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/func.wast:639: assert_malformed passed:
out/third_party/testsuite/func/func.44.wast:1:14: error: unexpected token "local", expected an instr.
diff --git a/test/spec/get_local.txt b/test/spec/get_local.txt
index 30dc45e4..6bc85f8e 100644
--- a/test/spec/get_local.txt
+++ b/test/spec/get_local.txt
@@ -2,22 +2,22 @@
;;; STDIN_FILE: third_party/testsuite/get_local.wast
(;; STDOUT ;;;
out/third_party/testsuite/get_local.wast:91: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001d: error: EndFunctionBody callback failed
out/third_party/testsuite/get_local.wast:95: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/get_local.wast:99: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/get_local.wast:107: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/get_local.wast:111: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/get_local.wast:115: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001c: error: OnUnaryExpr callback failed
out/third_party/testsuite/get_local.wast:123: assert_invalid passed:
error: invalid local_index: 3 (max 2)
diff --git a/test/spec/if.txt b/test/spec/if.txt
index 661d1d83..598aa556 100644
--- a/test/spec/if.txt
+++ b/test/spec/if.txt
@@ -2,107 +2,107 @@
;;; STDIN_FILE: third_party/testsuite/if.wast
(;; STDOUT ;;;
out/third_party/testsuite/if.wast:183: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:187: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:191: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:195: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:200: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:204: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:208: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:212: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:217: assert_invalid passed:
- error: type stack at end of if is 1, expected 0
+ error: type mismatch in if, expected [] but got [i32]
000001e: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:223: assert_invalid passed:
- error: type stack at end of if is 1, expected 0
+ error: type mismatch in if, expected [] but got [i32]
000001e: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:229: assert_invalid passed:
- error: type stack at end of if false branch is 1, expected 0
+ error: type mismatch in if false branch, expected [] but got [i32]
000001f: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:235: assert_invalid passed:
- error: type stack at end of if true branch is 1, expected 0
+ error: type mismatch in if true branch, expected [] but got [i32]
000001e: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:242: assert_invalid passed:
- error: type stack size too small at if true branch. got 0, expected at least 1
+ error: type mismatch in if true branch, expected [i32] but got []
000001d: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:248: assert_invalid passed:
error: if without else cannot have type signature.
000001f: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:254: assert_invalid passed:
error: if without else cannot have type signature.
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
000001d: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:260: assert_invalid passed:
error: if without else cannot have type signature.
000001f: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:267: assert_invalid passed:
- error: type stack size too small at if true branch. got 0, expected at least 1
+ error: type mismatch in if true branch, expected [i32] but got []
000001e: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:273: assert_invalid passed:
- error: type stack size too small at if false branch. got 0, expected at least 1
+ error: type mismatch in if false branch, expected [i32] but got []
0000021: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:279: assert_invalid passed:
- error: type stack size too small at if true branch. got 0, expected at least 1
+ error: type mismatch in if true branch, expected [i32] but got []
000001e: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:286: assert_invalid passed:
- error: type mismatch in if true branch, expected i32 but got i64.
+ error: type mismatch in if true branch, expected [i32] but got [i64]
000001f: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:292: assert_invalid passed:
- error: type mismatch in if false branch, expected i32 but got i64.
+ error: type mismatch in if false branch, expected [i32] but got [i64]
0000022: error: OnEndExpr callback failed
out/third_party/testsuite/if.wast:298: assert_invalid passed:
- error: type mismatch in if true branch, expected i32 but got i64.
+ error: type mismatch in if true branch, expected [i32] but got [i64]
000001f: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:304: assert_invalid passed:
- error: type mismatch in if true branch, expected i32 but got i64.
+ error: type mismatch in if true branch, expected [i32] but got [i64]
000001f: error: OnElseExpr callback failed
out/third_party/testsuite/if.wast:311: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000025: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:321: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000025: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:331: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000027: error: EndFunctionBody callback failed
out/third_party/testsuite/if.wast:342: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:348: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000021: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:354: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001e: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:363: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000021: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:372: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001f: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:381: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000022: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:391: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
0000020: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:400: assert_invalid passed:
- error: type mismatch in br, expected i32 but got i64.
+ error: type mismatch in br, expected [i32] but got [i64]
0000023: error: OnBrExpr callback failed
out/third_party/testsuite/if.wast:411: assert_malformed passed:
out/third_party/testsuite/if/if.35.wast:1:14: error: unexpected label "$l"
diff --git a/test/spec/labels.txt b/test/spec/labels.txt
index 4b49e786..d47b52a9 100644
--- a/test/spec/labels.txt
+++ b/test/spec/labels.txt
@@ -2,13 +2,13 @@
;;; STDIN_FILE: third_party/testsuite/labels.wast
(;; STDOUT ;;;
out/third_party/testsuite/labels.wast:303: assert_invalid passed:
- error: type stack size too small at f32.neg. got 0, expected at least 1
+ error: type mismatch in f32.neg, expected [f32] but got []
000001e: error: OnUnaryExpr callback failed
out/third_party/testsuite/labels.wast:307: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [f32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/labels.wast:311: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [f32]
0000023: error: OnEndExpr callback failed
27/27 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/loop.txt b/test/spec/loop.txt
index 8a64d479..fa4371f6 100644
--- a/test/spec/loop.txt
+++ b/test/spec/loop.txt
@@ -2,31 +2,31 @@
;;; STDIN_FILE: third_party/testsuite/loop.wast
(;; STDOUT ;;;
out/third_party/testsuite/loop.wast:254: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/loop.wast:258: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/loop.wast:262: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/loop.wast:266: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/loop.wast:271: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
000001c: error: OnEndExpr callback failed
out/third_party/testsuite/loop.wast:277: assert_invalid passed:
- error: type stack size too small at loop. got 0, expected at least 1
+ error: type mismatch in loop, expected [i32] but got []
000001b: error: OnEndExpr callback failed
out/third_party/testsuite/loop.wast:283: assert_invalid passed:
- error: type stack size too small at loop. got 0, expected at least 1
+ error: type mismatch in loop, expected [i32] but got []
000001c: error: OnEndExpr callback failed
out/third_party/testsuite/loop.wast:289: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/loop.wast:295: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000020: error: EndFunctionBody callback failed
out/third_party/testsuite/loop.wast:303: assert_malformed passed:
out/third_party/testsuite/loop/loop.10.wast:1:16: error: unexpected label "$l"
diff --git a/test/spec/nop.txt b/test/spec/nop.txt
index 0f5dfdc0..b5f83524 100644
--- a/test/spec/nop.txt
+++ b/test/spec/nop.txt
@@ -2,16 +2,16 @@
;;; STDIN_FILE: third_party/testsuite/nop.wast
(;; STDOUT ;;;
out/third_party/testsuite/nop.wast:250: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/nop.wast:254: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/nop.wast:258: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/nop.wast:262: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000001a: error: EndFunctionBody callback failed
54/54 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/return.txt b/test/spec/return.txt
index 2bf9399a..43437cc2 100644
--- a/test/spec/return.txt
+++ b/test/spec/return.txt
@@ -2,13 +2,13 @@
;;; STDIN_FILE: third_party/testsuite/return.wast
(;; STDOUT ;;;
out/third_party/testsuite/return.wast:276: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [f64] but got []
0000019: error: OnReturnExpr callback failed
out/third_party/testsuite/return.wast:280: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [f64] but got []
000001a: error: OnReturnExpr callback failed
out/third_party/testsuite/return.wast:284: assert_invalid passed:
- error: type mismatch in return, expected f64 but got i64.
+ error: type mismatch in return, expected [f64] but got [i64]
000001b: error: OnReturnExpr callback failed
60/60 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/select.txt b/test/spec/select.txt
index 0960bd2c..1176658a 100644
--- a/test/spec/select.txt
+++ b/test/spec/select.txt
@@ -2,7 +2,7 @@
;;; STDIN_FILE: third_party/testsuite/select.wast
(;; STDOUT ;;;
out/third_party/testsuite/select.wast:65: assert_invalid passed:
- error: type stack size too small at select. got 0, expected at least 2
+ error: type mismatch in select, expected [i32, any, any] but got [i32]
000001c: error: OnSelectExpr callback failed
29/29 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/set_local.txt b/test/spec/set_local.txt
index e386b8d0..6a4bd9e2 100644
--- a/test/spec/set_local.txt
+++ b/test/spec/set_local.txt
@@ -2,46 +2,46 @@
;;; STDIN_FILE: third_party/testsuite/set_local.wast
(;; STDOUT ;;;
out/third_party/testsuite/set_local.wast:95: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/set_local.wast:101: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/set_local.wast:107: assert_invalid passed:
- error: type stack size too small at f64.neg. got 0, expected at least 1
+ error: type mismatch in f64.neg, expected [f64] but got []
0000020: error: OnUnaryExpr callback failed
out/third_party/testsuite/set_local.wast:114: assert_invalid passed:
- error: type stack size too small at set_local. got 0, expected at least 1
+ error: type mismatch in set_local, expected [i32] but got []
000001c: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:118: assert_invalid passed:
- error: type mismatch in set_local, expected i32 but got f32.
+ error: type mismatch in set_local, expected [i32] but got [f32]
0000020: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:122: assert_invalid passed:
- error: type mismatch in set_local, expected f32 but got f64.
+ error: type mismatch in set_local, expected [f32] but got [f64]
0000024: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:126: assert_invalid passed:
- error: type mismatch in set_local, expected i64 but got f64.
+ error: type mismatch in set_local, expected [i64] but got [f64]
0000026: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:134: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/set_local.wast:138: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/set_local.wast:142: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001c: error: OnUnaryExpr callback failed
out/third_party/testsuite/set_local.wast:147: assert_invalid passed:
- error: type stack size too small at set_local. got 0, expected at least 1
+ error: type mismatch in set_local, expected [i32] but got []
000001b: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:151: assert_invalid passed:
- error: type mismatch in set_local, expected i32 but got f32.
+ error: type mismatch in set_local, expected [i32] but got [f32]
000001f: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:155: assert_invalid passed:
- error: type mismatch in set_local, expected f32 but got f64.
+ error: type mismatch in set_local, expected [f32] but got [f64]
0000023: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:159: assert_invalid passed:
- error: type mismatch in set_local, expected i64 but got f64.
+ error: type mismatch in set_local, expected [i64] but got [f64]
0000024: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:167: assert_invalid passed:
error: invalid local_index: 3 (max 2)
@@ -62,13 +62,13 @@ out/third_party/testsuite/set_local.wast:189: assert_invalid passed:
error: invalid local_index: 214324343 (max 3)
0000021: error: OnGetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:194: assert_invalid passed:
- error: type mismatch in set_local, expected i32 but got f32.
+ error: type mismatch in set_local, expected [i32] but got [f32]
0000021: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:198: assert_invalid passed:
- error: type mismatch in set_local, expected i32 but got f32.
+ error: type mismatch in set_local, expected [i32] but got [f32]
0000022: error: OnSetLocalExpr callback failed
out/third_party/testsuite/set_local.wast:202: assert_invalid passed:
- error: type mismatch in set_local, expected f64 but got i64.
+ error: type mismatch in set_local, expected [f64] but got [i64]
0000020: error: OnSetLocalExpr callback failed
33/33 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/store_retval.txt b/test/spec/store_retval.txt
index 62a0160c..44a1b9bd 100644
--- a/test/spec/store_retval.txt
+++ b/test/spec/store_retval.txt
@@ -2,43 +2,43 @@
;;; STDIN_FILE: third_party/testsuite/store_retval.wast
(;; STDOUT ;;;
out/third_party/testsuite/store_retval.wast:2: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:6: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:10: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
0000021: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:14: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
0000025: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:19: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:23: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:27: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f32] but got []
0000029: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:31: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [f64] but got []
000002d: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:36: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:40: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:44: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:48: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
0000026: error: EndFunctionBody callback failed
out/third_party/testsuite/store_retval.wast:52: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i64] but got []
0000026: error: EndFunctionBody callback failed
13/13 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/tee_local.txt b/test/spec/tee_local.txt
index 6824f28b..eab9cb3c 100644
--- a/test/spec/tee_local.txt
+++ b/test/spec/tee_local.txt
@@ -2,46 +2,46 @@
;;; STDIN_FILE: third_party/testsuite/tee_local.wast
(;; STDOUT ;;;
out/third_party/testsuite/tee_local.wast:132: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/tee_local.wast:136: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/tee_local.wast:140: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
0000020: error: OnUnaryExpr callback failed
out/third_party/testsuite/tee_local.wast:145: assert_invalid passed:
- error: type stack size too small at tee_local. got 0, expected at least 1
+ error: type mismatch in tee_local, expected [i32] but got []
000001c: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:149: assert_invalid passed:
- error: type mismatch in tee_local, expected i32 but got f32.
+ error: type mismatch in tee_local, expected [i32] but got [f32]
0000020: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:153: assert_invalid passed:
- error: type mismatch in tee_local, expected f32 but got f64.
+ error: type mismatch in tee_local, expected [f32] but got [f64]
0000024: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:157: assert_invalid passed:
- error: type mismatch in tee_local, expected i64 but got f64.
+ error: type mismatch in tee_local, expected [i64] but got [f64]
0000026: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:165: assert_invalid passed:
- error: type mismatch in implicit return, expected i64 but got i32.
+ error: type mismatch in implicit return, expected [i64] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/tee_local.wast:169: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/tee_local.wast:173: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001c: error: OnUnaryExpr callback failed
out/third_party/testsuite/tee_local.wast:178: assert_invalid passed:
- error: type stack size too small at tee_local. got 0, expected at least 1
+ error: type mismatch in tee_local, expected [i32] but got []
000001b: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:182: assert_invalid passed:
- error: type mismatch in tee_local, expected i32 but got f32.
+ error: type mismatch in tee_local, expected [i32] but got [f32]
000001f: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:186: assert_invalid passed:
- error: type mismatch in tee_local, expected f32 but got f64.
+ error: type mismatch in tee_local, expected [f32] but got [f64]
0000023: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:190: assert_invalid passed:
- error: type mismatch in tee_local, expected i64 but got f64.
+ error: type mismatch in tee_local, expected [i64] but got [f64]
0000024: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:198: assert_invalid passed:
error: invalid local_index: 3 (max 2)
@@ -62,13 +62,13 @@ out/third_party/testsuite/tee_local.wast:220: assert_invalid passed:
error: invalid local_index: 214324343 (max 3)
0000021: error: OnGetLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:225: assert_invalid passed:
- error: type mismatch in tee_local, expected i32 but got f32.
+ error: type mismatch in tee_local, expected [i32] but got [f32]
0000021: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:229: assert_invalid passed:
- error: type mismatch in tee_local, expected i32 but got f32.
+ error: type mismatch in tee_local, expected [i32] but got [f32]
0000022: error: OnTeeLocalExpr callback failed
out/third_party/testsuite/tee_local.wast:233: assert_invalid passed:
- error: type mismatch in tee_local, expected f64 but got i64.
+ error: type mismatch in tee_local, expected [f64] but got [i64]
0000020: error: OnTeeLocalExpr callback failed
34/34 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/typecheck.txt b/test/spec/typecheck.txt
index f02f7ca2..072e68e5 100644
--- a/test/spec/typecheck.txt
+++ b/test/spec/typecheck.txt
@@ -2,660 +2,583 @@
;;; STDIN_FILE: third_party/testsuite/typecheck.wast
(;; STDOUT ;;;
out/third_party/testsuite/typecheck.wast:4: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000018: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:10: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:17: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:24: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001e: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:31: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:39: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
0000018: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:45: assert_invalid passed:
- error: type stack size too small at i32.add. got 1, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got [i32]
000001a: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:51: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
000001e: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:58: assert_invalid passed:
- error: type stack size too small at i32.add. got 1, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got [i32]
000001e: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:65: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
000001e: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:72: assert_invalid passed:
- error: type stack size too small at i32.add. got 1, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got [i32]
000001e: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:79: assert_invalid passed:
- error: type stack size too small at drop. got 0, expected at least 1
+ error: type mismatch in drop, expected [any] but got []
0000021: error: OnDropExpr callback failed
out/third_party/testsuite/typecheck.wast:86: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
0000020: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:93: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:101: assert_invalid passed:
- error: type stack size too small at i32.add. got 0, expected at least 2
+ error: type mismatch in i32.add, expected [i32, i32] but got []
0000021: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:110: assert_invalid passed:
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
0000019: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:116: assert_invalid passed:
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
000001d: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:123: assert_invalid passed:
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
000001d: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:130: assert_invalid passed:
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
000001f: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:137: assert_invalid passed:
- error: type stack size too small at if. got 0, expected at least 1
+ error: type mismatch in if, expected [i32] but got []
0000022: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:146: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001b: error: OnBrExpr callback failed
out/third_party/testsuite/typecheck.wast:153: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
000001d: error: OnBrExpr callback failed
out/third_party/testsuite/typecheck.wast:161: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000021: error: OnBrExpr callback failed
out/third_party/testsuite/typecheck.wast:171: assert_invalid passed:
- error: type stack size too small at br. got 0, expected at least 1
+ error: type mismatch in br, expected [i32] but got []
0000024: error: OnBrExpr callback failed
out/third_party/testsuite/typecheck.wast:182: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
0000019: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:188: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
000001d: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:195: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
000001d: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:202: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
000001f: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:209: assert_invalid passed:
- error: type stack size too small at return. got 0, expected at least 1
+ error: type mismatch in return, expected [i32] but got []
0000022: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:219: assert_invalid passed:
- error: type mismatch in if, expected i32 but got f32.
+ error: type mismatch in if, expected [i32] but got [f32]
000001e: error: OnIfExpr callback failed
out/third_party/testsuite/typecheck.wast:222: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got f32.
+ error: type mismatch in br_if, expected [i32] but got [f32]
0000020: error: OnBrIfExpr callback failed
out/third_party/testsuite/typecheck.wast:226: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got f32.
+ error: type mismatch in br_table, expected [i32] but got [f32]
0000021: error: OnBrTableExpr callback failed
out/third_party/testsuite/typecheck.wast:230: assert_invalid passed:
- error: type mismatch in call, expected i32 but got f32.
+ error: type mismatch in call, expected [i32] but got [f32]
0000026: error: OnCallExpr callback failed
out/third_party/testsuite/typecheck.wast:232: assert_invalid passed:
- error: type mismatch in call_indirect, expected i32 but got f32.
+ error: type mismatch in call_indirect, expected [i32] but got [... f32]
000002f: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/typecheck.wast:242: assert_invalid passed:
- error: type mismatch in call_indirect, expected i32 but got f32.
+ error: type mismatch in call_indirect, expected [i32] but got [f32]
0000029: error: OnCallIndirectExpr callback failed
out/third_party/testsuite/typecheck.wast:250: assert_invalid passed:
- error: type mismatch in return, expected i32 but got f32.
+ error: type mismatch in return, expected [i32] but got [f32]
000001e: error: OnReturnExpr callback failed
out/third_party/testsuite/typecheck.wast:253: assert_invalid passed:
- error: type mismatch in set_local, expected i32 but got f32.
+ error: type mismatch in set_local, expected [i32] but got [f32]
0000020: error: OnSetLocalExpr callback failed
out/third_party/testsuite/typecheck.wast:256: assert_invalid passed:
- error: type mismatch in i32.load, expected i32 but got f32.
+ error: type mismatch in i32.load, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:257: assert_invalid passed:
- error: type mismatch in i32.load8_s, expected i32 but got f32.
+ error: type mismatch in i32.load8_s, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:258: assert_invalid passed:
- error: type mismatch in i32.load8_u, expected i32 but got f32.
+ error: type mismatch in i32.load8_u, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:259: assert_invalid passed:
- error: type mismatch in i32.load16_s, expected i32 but got f32.
+ error: type mismatch in i32.load16_s, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:260: assert_invalid passed:
- error: type mismatch in i32.load16_u, expected i32 but got f32.
+ error: type mismatch in i32.load16_u, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:261: assert_invalid passed:
- error: type mismatch in i64.load, expected i32 but got f32.
+ error: type mismatch in i64.load, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:262: assert_invalid passed:
- error: type mismatch in i64.load8_s, expected i32 but got f32.
+ error: type mismatch in i64.load8_s, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:263: assert_invalid passed:
- error: type mismatch in i64.load8_u, expected i32 but got f32.
+ error: type mismatch in i64.load8_u, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:264: assert_invalid passed:
- error: type mismatch in i64.load16_s, expected i32 but got f32.
+ error: type mismatch in i64.load16_s, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:265: assert_invalid passed:
- error: type mismatch in i64.load16_u, expected i32 but got f32.
+ error: type mismatch in i64.load16_u, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:266: assert_invalid passed:
- error: type mismatch in i64.load32_s, expected i32 but got f32.
+ error: type mismatch in i64.load32_s, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:267: assert_invalid passed:
- error: type mismatch in i64.load32_u, expected i32 but got f32.
+ error: type mismatch in i64.load32_u, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:268: assert_invalid passed:
- error: type mismatch in f32.load, expected i32 but got f32.
+ error: type mismatch in f32.load, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:269: assert_invalid passed:
- error: type mismatch in f64.load, expected i32 but got f32.
+ error: type mismatch in f64.load, expected [i32] but got [f32]
0000024: error: OnLoadExpr callback failed
out/third_party/testsuite/typecheck.wast:272: assert_invalid passed:
- error: type mismatch in i32.store, expected i32 but got f32.
+ error: type mismatch in i32.store, expected [i32, i32] but got [f32, i32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:273: assert_invalid passed:
- error: type mismatch in i32.store8, expected i32 but got f32.
+ error: type mismatch in i32.store8, expected [i32, i32] but got [f32, i32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:274: assert_invalid passed:
- error: type mismatch in i32.store16, expected i32 but got f32.
+ error: type mismatch in i32.store16, expected [i32, i32] but got [f32, i32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:275: assert_invalid passed:
- error: type mismatch in i64.store, expected i32 but got f32.
- error: type mismatch in i64.store, expected i64 but got i32.
+ error: type mismatch in i64.store, expected [i32, i64] but got [f32, i32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:276: assert_invalid passed:
- error: type mismatch in i64.store8, expected i32 but got f32.
+ error: type mismatch in i64.store8, expected [i32, i64] but got [f32, i64]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:277: assert_invalid passed:
- error: type mismatch in i64.store16, expected i32 but got f32.
+ error: type mismatch in i64.store16, expected [i32, i64] but got [f32, i64]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:278: assert_invalid passed:
- error: type mismatch in i64.store32, expected i32 but got f32.
+ error: type mismatch in i64.store32, expected [i32, i64] but got [f32, i64]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:279: assert_invalid passed:
- error: type mismatch in f32.store, expected i32 but got f32.
+ error: type mismatch in f32.store, expected [i32, f32] but got [f32, f32]
0000029: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:280: assert_invalid passed:
- error: type mismatch in f64.store, expected i32 but got f32.
+ error: type mismatch in f64.store, expected [i32, f64] but got [f32, f64]
000002d: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:283: assert_invalid passed:
- error: type mismatch in i32.store, expected i32 but got f32.
+ error: type mismatch in i32.store, expected [i32, i32] but got [i32, f32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:284: assert_invalid passed:
- error: type mismatch in i32.store8, expected i32 but got f32.
+ error: type mismatch in i32.store8, expected [i32, i32] but got [i32, f32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:285: assert_invalid passed:
- error: type mismatch in i32.store16, expected i32 but got f32.
+ error: type mismatch in i32.store16, expected [i32, i32] but got [i32, f32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:286: assert_invalid passed:
- error: type mismatch in i64.store, expected i64 but got f32.
+ error: type mismatch in i64.store, expected [i32, i64] but got [i32, f32]
0000026: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:287: assert_invalid passed:
- error: type mismatch in i64.store8, expected i64 but got f64.
+ error: type mismatch in i64.store8, expected [i32, i64] but got [i32, f64]
000002a: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:288: assert_invalid passed:
- error: type mismatch in i64.store16, expected i64 but got f64.
+ error: type mismatch in i64.store16, expected [i32, i64] but got [i32, f64]
000002a: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:289: assert_invalid passed:
- error: type mismatch in i64.store32, expected i64 but got f64.
+ error: type mismatch in i64.store32, expected [i32, i64] but got [i32, f64]
000002a: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:290: assert_invalid passed:
- error: type mismatch in f32.store, expected f32 but got i32.
+ error: type mismatch in f32.store, expected [i32, f32] but got [i32, i32]
0000023: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:291: assert_invalid passed:
- error: type mismatch in f64.store, expected f64 but got i64.
+ error: type mismatch in f64.store, expected [i32, f64] but got [i32, i64]
0000023: error: OnStoreExpr callback failed
out/third_party/testsuite/typecheck.wast:294: assert_invalid passed:
- error: type mismatch in i32.add, expected i32 but got i64.
- error: type mismatch in i32.add, expected i32 but got f32.
+ error: type mismatch in i32.add, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:295: assert_invalid passed:
- error: type mismatch in i32.and, expected i32 but got i64.
- error: type mismatch in i32.and, expected i32 but got f32.
+ error: type mismatch in i32.and, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:296: assert_invalid passed:
- error: type mismatch in i32.div_s, expected i32 but got i64.
- error: type mismatch in i32.div_s, expected i32 but got f32.
+ error: type mismatch in i32.div_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:297: assert_invalid passed:
- error: type mismatch in i32.div_u, expected i32 but got i64.
- error: type mismatch in i32.div_u, expected i32 but got f32.
+ error: type mismatch in i32.div_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:298: assert_invalid passed:
- error: type mismatch in i32.mul, expected i32 but got i64.
- error: type mismatch in i32.mul, expected i32 but got f32.
+ error: type mismatch in i32.mul, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:299: assert_invalid passed:
- error: type mismatch in i32.or, expected i32 but got i64.
- error: type mismatch in i32.or, expected i32 but got f32.
+ error: type mismatch in i32.or, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:300: assert_invalid passed:
- error: type mismatch in i32.rem_s, expected i32 but got i64.
- error: type mismatch in i32.rem_s, expected i32 but got f32.
+ error: type mismatch in i32.rem_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:301: assert_invalid passed:
- error: type mismatch in i32.rem_u, expected i32 but got i64.
- error: type mismatch in i32.rem_u, expected i32 but got f32.
+ error: type mismatch in i32.rem_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:302: assert_invalid passed:
- error: type mismatch in i32.rotl, expected i32 but got i64.
- error: type mismatch in i32.rotl, expected i32 but got f32.
+ error: type mismatch in i32.rotl, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:303: assert_invalid passed:
- error: type mismatch in i32.rotr, expected i32 but got i64.
- error: type mismatch in i32.rotr, expected i32 but got f32.
+ error: type mismatch in i32.rotr, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:304: assert_invalid passed:
- error: type mismatch in i32.shl, expected i32 but got i64.
- error: type mismatch in i32.shl, expected i32 but got f32.
+ error: type mismatch in i32.shl, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:305: assert_invalid passed:
- error: type mismatch in i32.shr_s, expected i32 but got i64.
- error: type mismatch in i32.shr_s, expected i32 but got f32.
+ error: type mismatch in i32.shr_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:306: assert_invalid passed:
- error: type mismatch in i32.shr_u, expected i32 but got i64.
- error: type mismatch in i32.shr_u, expected i32 but got f32.
+ error: type mismatch in i32.shr_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:307: assert_invalid passed:
- error: type mismatch in i32.sub, expected i32 but got i64.
- error: type mismatch in i32.sub, expected i32 but got f32.
+ error: type mismatch in i32.sub, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:308: assert_invalid passed:
- error: type mismatch in i32.xor, expected i32 but got i64.
- error: type mismatch in i32.xor, expected i32 but got f32.
+ error: type mismatch in i32.xor, expected [i32, i32] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:309: assert_invalid passed:
- error: type mismatch in i64.add, expected i64 but got i32.
- error: type mismatch in i64.add, expected i64 but got f32.
+ error: type mismatch in i64.add, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:310: assert_invalid passed:
- error: type mismatch in i64.and, expected i64 but got i32.
- error: type mismatch in i64.and, expected i64 but got f32.
+ error: type mismatch in i64.and, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:311: assert_invalid passed:
- error: type mismatch in i64.div_s, expected i64 but got i32.
- error: type mismatch in i64.div_s, expected i64 but got f32.
+ error: type mismatch in i64.div_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:312: assert_invalid passed:
- error: type mismatch in i64.div_u, expected i64 but got i32.
- error: type mismatch in i64.div_u, expected i64 but got f32.
+ error: type mismatch in i64.div_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:313: assert_invalid passed:
- error: type mismatch in i64.mul, expected i64 but got i32.
- error: type mismatch in i64.mul, expected i64 but got f32.
+ error: type mismatch in i64.mul, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:314: assert_invalid passed:
- error: type mismatch in i64.or, expected i64 but got i32.
- error: type mismatch in i64.or, expected i64 but got f32.
+ error: type mismatch in i64.or, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:315: assert_invalid passed:
- error: type mismatch in i64.rem_s, expected i64 but got i32.
- error: type mismatch in i64.rem_s, expected i64 but got f32.
+ error: type mismatch in i64.rem_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:316: assert_invalid passed:
- error: type mismatch in i64.rem_u, expected i64 but got i32.
- error: type mismatch in i64.rem_u, expected i64 but got f32.
+ error: type mismatch in i64.rem_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:317: assert_invalid passed:
- error: type mismatch in i64.rotl, expected i64 but got i32.
- error: type mismatch in i64.rotl, expected i64 but got f32.
+ error: type mismatch in i64.rotl, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:318: assert_invalid passed:
- error: type mismatch in i64.rotr, expected i64 but got i32.
- error: type mismatch in i64.rotr, expected i64 but got f32.
+ error: type mismatch in i64.rotr, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:319: assert_invalid passed:
- error: type mismatch in i64.shl, expected i64 but got i32.
- error: type mismatch in i64.shl, expected i64 but got f32.
+ error: type mismatch in i64.shl, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:320: assert_invalid passed:
- error: type mismatch in i64.shr_s, expected i64 but got i32.
- error: type mismatch in i64.shr_s, expected i64 but got f32.
+ error: type mismatch in i64.shr_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:321: assert_invalid passed:
- error: type mismatch in i64.shr_u, expected i64 but got i32.
- error: type mismatch in i64.shr_u, expected i64 but got f32.
+ error: type mismatch in i64.shr_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:322: assert_invalid passed:
- error: type mismatch in i64.sub, expected i64 but got i32.
- error: type mismatch in i64.sub, expected i64 but got f32.
+ error: type mismatch in i64.sub, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:323: assert_invalid passed:
- error: type mismatch in i64.xor, expected i64 but got i32.
- error: type mismatch in i64.xor, expected i64 but got f32.
+ error: type mismatch in i64.xor, expected [i64, i64] but got [i32, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:324: assert_invalid passed:
- error: type mismatch in f32.add, expected f32 but got i64.
- error: type mismatch in f32.add, expected f32 but got f64.
+ error: type mismatch in f32.add, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:325: assert_invalid passed:
- error: type mismatch in f32.copysign, expected f32 but got i64.
- error: type mismatch in f32.copysign, expected f32 but got f64.
+ error: type mismatch in f32.copysign, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:326: assert_invalid passed:
- error: type mismatch in f32.div, expected f32 but got i64.
- error: type mismatch in f32.div, expected f32 but got f64.
+ error: type mismatch in f32.div, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:327: assert_invalid passed:
- error: type mismatch in f32.max, expected f32 but got i64.
- error: type mismatch in f32.max, expected f32 but got f64.
+ error: type mismatch in f32.max, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:328: assert_invalid passed:
- error: type mismatch in f32.min, expected f32 but got i64.
- error: type mismatch in f32.min, expected f32 but got f64.
+ error: type mismatch in f32.min, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:329: assert_invalid passed:
- error: type mismatch in f32.mul, expected f32 but got i64.
- error: type mismatch in f32.mul, expected f32 but got f64.
+ error: type mismatch in f32.mul, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:330: assert_invalid passed:
- error: type mismatch in f32.sub, expected f32 but got i64.
- error: type mismatch in f32.sub, expected f32 but got f64.
+ error: type mismatch in f32.sub, expected [f32, f32] but got [i64, f64]
0000023: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:331: assert_invalid passed:
- error: type mismatch in f64.add, expected f64 but got i64.
- error: type mismatch in f64.add, expected f64 but got f32.
+ error: type mismatch in f64.add, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:332: assert_invalid passed:
- error: type mismatch in f64.copysign, expected f64 but got i64.
- error: type mismatch in f64.copysign, expected f64 but got f32.
+ error: type mismatch in f64.copysign, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:333: assert_invalid passed:
- error: type mismatch in f64.div, expected f64 but got i64.
- error: type mismatch in f64.div, expected f64 but got f32.
+ error: type mismatch in f64.div, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:334: assert_invalid passed:
- error: type mismatch in f64.max, expected f64 but got i64.
- error: type mismatch in f64.max, expected f64 but got f32.
+ error: type mismatch in f64.max, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:335: assert_invalid passed:
- error: type mismatch in f64.min, expected f64 but got i64.
- error: type mismatch in f64.min, expected f64 but got f32.
+ error: type mismatch in f64.min, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:336: assert_invalid passed:
- error: type mismatch in f64.mul, expected f64 but got i64.
- error: type mismatch in f64.mul, expected f64 but got f32.
+ error: type mismatch in f64.mul, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:337: assert_invalid passed:
- error: type mismatch in f64.sub, expected f64 but got i64.
- error: type mismatch in f64.sub, expected f64 but got f32.
+ error: type mismatch in f64.sub, expected [f64, f64] but got [i64, f32]
000001f: error: OnBinaryExpr callback failed
out/third_party/testsuite/typecheck.wast:340: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got i64.
+ error: type mismatch in i32.eqz, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:341: assert_invalid passed:
- error: type mismatch in i32.clz, expected i32 but got i64.
+ error: type mismatch in i32.clz, expected [i32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:342: assert_invalid passed:
- error: type mismatch in i32.ctz, expected i32 but got i64.
+ error: type mismatch in i32.ctz, expected [i32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:343: assert_invalid passed:
- error: type mismatch in i32.popcnt, expected i32 but got i64.
+ error: type mismatch in i32.popcnt, expected [i32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:344: assert_invalid passed:
- error: type mismatch in i64.eqz, expected i64 but got i32.
+ error: type mismatch in i64.eqz, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:345: assert_invalid passed:
- error: type mismatch in i64.clz, expected i64 but got i32.
+ error: type mismatch in i64.clz, expected [i64] but got [i32]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:346: assert_invalid passed:
- error: type mismatch in i64.ctz, expected i64 but got i32.
+ error: type mismatch in i64.ctz, expected [i64] but got [i32]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:347: assert_invalid passed:
- error: type mismatch in i64.popcnt, expected i64 but got i32.
+ error: type mismatch in i64.popcnt, expected [i64] but got [i32]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:348: assert_invalid passed:
- error: type mismatch in f32.abs, expected f32 but got i64.
+ error: type mismatch in f32.abs, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:349: assert_invalid passed:
- error: type mismatch in f32.ceil, expected f32 but got i64.
+ error: type mismatch in f32.ceil, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:350: assert_invalid passed:
- error: type mismatch in f32.floor, expected f32 but got i64.
+ error: type mismatch in f32.floor, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:351: assert_invalid passed:
- error: type mismatch in f32.nearest, expected f32 but got i64.
+ error: type mismatch in f32.nearest, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:352: assert_invalid passed:
- error: type mismatch in f32.neg, expected f32 but got i64.
+ error: type mismatch in f32.neg, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:353: assert_invalid passed:
- error: type mismatch in f32.sqrt, expected f32 but got i64.
+ error: type mismatch in f32.sqrt, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:354: assert_invalid passed:
- error: type mismatch in f32.trunc, expected f32 but got i64.
+ error: type mismatch in f32.trunc, expected [f32] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:355: assert_invalid passed:
- error: type mismatch in f64.abs, expected f64 but got i64.
+ error: type mismatch in f64.abs, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:356: assert_invalid passed:
- error: type mismatch in f64.ceil, expected f64 but got i64.
+ error: type mismatch in f64.ceil, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:357: assert_invalid passed:
- error: type mismatch in f64.floor, expected f64 but got i64.
+ error: type mismatch in f64.floor, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:358: assert_invalid passed:
- error: type mismatch in f64.nearest, expected f64 but got i64.
+ error: type mismatch in f64.nearest, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:359: assert_invalid passed:
- error: type mismatch in f64.neg, expected f64 but got i64.
+ error: type mismatch in f64.neg, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:360: assert_invalid passed:
- error: type mismatch in f64.sqrt, expected f64 but got i64.
+ error: type mismatch in f64.sqrt, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:361: assert_invalid passed:
- error: type mismatch in f64.trunc, expected f64 but got i64.
+ error: type mismatch in f64.trunc, expected [f64] but got [i64]
000001a: error: OnUnaryExpr callback failed
out/third_party/testsuite/typecheck.wast:364: assert_invalid passed:
- error: type mismatch in i32.eq, expected i32 but got i64.
- error: type mismatch in i32.eq, expected i32 but got f32.
+ error: type mismatch in i32.eq, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:365: assert_invalid passed:
- error: type mismatch in i32.ge_s, expected i32 but got i64.
- error: type mismatch in i32.ge_s, expected i32 but got f32.
+ error: type mismatch in i32.ge_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:366: assert_invalid passed:
- error: type mismatch in i32.ge_u, expected i32 but got i64.
- error: type mismatch in i32.ge_u, expected i32 but got f32.
+ error: type mismatch in i32.ge_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:367: assert_invalid passed:
- error: type mismatch in i32.gt_s, expected i32 but got i64.
- error: type mismatch in i32.gt_s, expected i32 but got f32.
+ error: type mismatch in i32.gt_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:368: assert_invalid passed:
- error: type mismatch in i32.gt_u, expected i32 but got i64.
- error: type mismatch in i32.gt_u, expected i32 but got f32.
+ error: type mismatch in i32.gt_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:369: assert_invalid passed:
- error: type mismatch in i32.le_s, expected i32 but got i64.
- error: type mismatch in i32.le_s, expected i32 but got f32.
+ error: type mismatch in i32.le_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:370: assert_invalid passed:
- error: type mismatch in i32.le_u, expected i32 but got i64.
- error: type mismatch in i32.le_u, expected i32 but got f32.
+ error: type mismatch in i32.le_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:371: assert_invalid passed:
- error: type mismatch in i32.lt_s, expected i32 but got i64.
- error: type mismatch in i32.lt_s, expected i32 but got f32.
+ error: type mismatch in i32.lt_s, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:372: assert_invalid passed:
- error: type mismatch in i32.lt_u, expected i32 but got i64.
- error: type mismatch in i32.lt_u, expected i32 but got f32.
+ error: type mismatch in i32.lt_u, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:373: assert_invalid passed:
- error: type mismatch in i32.ne, expected i32 but got i64.
- error: type mismatch in i32.ne, expected i32 but got f32.
+ error: type mismatch in i32.ne, expected [i32, i32] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:374: assert_invalid passed:
- error: type mismatch in i64.eq, expected i64 but got i32.
- error: type mismatch in i64.eq, expected i64 but got f32.
+ error: type mismatch in i64.eq, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:375: assert_invalid passed:
- error: type mismatch in i64.ge_s, expected i64 but got i32.
- error: type mismatch in i64.ge_s, expected i64 but got f32.
+ error: type mismatch in i64.ge_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:376: assert_invalid passed:
- error: type mismatch in i64.ge_u, expected i64 but got i32.
- error: type mismatch in i64.ge_u, expected i64 but got f32.
+ error: type mismatch in i64.ge_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:377: assert_invalid passed:
- error: type mismatch in i64.gt_s, expected i64 but got i32.
- error: type mismatch in i64.gt_s, expected i64 but got f32.
+ error: type mismatch in i64.gt_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:378: assert_invalid passed:
- error: type mismatch in i64.gt_u, expected i64 but got i32.
- error: type mismatch in i64.gt_u, expected i64 but got f32.
+ error: type mismatch in i64.gt_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:379: assert_invalid passed:
- error: type mismatch in i64.le_s, expected i64 but got i32.
- error: type mismatch in i64.le_s, expected i64 but got f32.
+ error: type mismatch in i64.le_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:380: assert_invalid passed:
- error: type mismatch in i64.le_u, expected i64 but got i32.
- error: type mismatch in i64.le_u, expected i64 but got f32.
+ error: type mismatch in i64.le_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:381: assert_invalid passed:
- error: type mismatch in i64.lt_s, expected i64 but got i32.
- error: type mismatch in i64.lt_s, expected i64 but got f32.
+ error: type mismatch in i64.lt_s, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:382: assert_invalid passed:
- error: type mismatch in i64.lt_u, expected i64 but got i32.
- error: type mismatch in i64.lt_u, expected i64 but got f32.
+ error: type mismatch in i64.lt_u, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:383: assert_invalid passed:
- error: type mismatch in i64.ne, expected i64 but got i32.
- error: type mismatch in i64.ne, expected i64 but got f32.
+ error: type mismatch in i64.ne, expected [i64, i64] but got [i32, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:384: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i64.
- error: type mismatch in f32.eq, expected f32 but got f64.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:385: assert_invalid passed:
- error: type mismatch in f32.ge, expected f32 but got i64.
- error: type mismatch in f32.ge, expected f32 but got f64.
+ error: type mismatch in f32.ge, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:386: assert_invalid passed:
- error: type mismatch in f32.gt, expected f32 but got i64.
- error: type mismatch in f32.gt, expected f32 but got f64.
+ error: type mismatch in f32.gt, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:387: assert_invalid passed:
- error: type mismatch in f32.le, expected f32 but got i64.
- error: type mismatch in f32.le, expected f32 but got f64.
+ error: type mismatch in f32.le, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:388: assert_invalid passed:
- error: type mismatch in f32.lt, expected f32 but got i64.
- error: type mismatch in f32.lt, expected f32 but got f64.
+ error: type mismatch in f32.lt, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:389: assert_invalid passed:
- error: type mismatch in f32.ne, expected f32 but got i64.
- error: type mismatch in f32.ne, expected f32 but got f64.
+ error: type mismatch in f32.ne, expected [f32, f32] but got [i64, f64]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:390: assert_invalid passed:
- error: type mismatch in f64.eq, expected f64 but got i64.
- error: type mismatch in f64.eq, expected f64 but got f32.
+ error: type mismatch in f64.eq, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:391: assert_invalid passed:
- error: type mismatch in f64.ge, expected f64 but got i64.
- error: type mismatch in f64.ge, expected f64 but got f32.
+ error: type mismatch in f64.ge, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:392: assert_invalid passed:
- error: type mismatch in f64.gt, expected f64 but got i64.
- error: type mismatch in f64.gt, expected f64 but got f32.
+ error: type mismatch in f64.gt, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:393: assert_invalid passed:
- error: type mismatch in f64.le, expected f64 but got i64.
- error: type mismatch in f64.le, expected f64 but got f32.
+ error: type mismatch in f64.le, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:394: assert_invalid passed:
- error: type mismatch in f64.lt, expected f64 but got i64.
- error: type mismatch in f64.lt, expected f64 but got f32.
+ error: type mismatch in f64.lt, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:395: assert_invalid passed:
- error: type mismatch in f64.ne, expected f64 but got i64.
- error: type mismatch in f64.ne, expected f64 but got f32.
+ error: type mismatch in f64.ne, expected [f64, f64] but got [i64, f32]
000001f: error: OnCompareExpr callback failed
out/third_party/testsuite/typecheck.wast:398: assert_invalid passed:
- error: type mismatch in i32.wrap/i64, expected i64 but got f32.
+ error: type mismatch in i32.wrap/i64, expected [i64] but got [f32]
000001d: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:399: assert_invalid passed:
- error: type mismatch in i32.trunc_s/f32, expected f32 but got i64.
+ error: type mismatch in i32.trunc_s/f32, expected [f32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:400: assert_invalid passed:
- error: type mismatch in i32.trunc_u/f32, expected f32 but got i64.
+ error: type mismatch in i32.trunc_u/f32, expected [f32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:401: assert_invalid passed:
- error: type mismatch in i32.trunc_s/f64, expected f64 but got i64.
+ error: type mismatch in i32.trunc_s/f64, expected [f64] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:402: assert_invalid passed:
- error: type mismatch in i32.trunc_u/f64, expected f64 but got i64.
+ error: type mismatch in i32.trunc_u/f64, expected [f64] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:403: assert_invalid passed:
- error: type mismatch in i32.reinterpret/f32, expected f32 but got i64.
+ error: type mismatch in i32.reinterpret/f32, expected [f32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:404: assert_invalid passed:
- error: type mismatch in i64.extend_s/i32, expected i32 but got f32.
+ error: type mismatch in i64.extend_s/i32, expected [i32] but got [f32]
000001d: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:405: assert_invalid passed:
- error: type mismatch in i64.extend_u/i32, expected i32 but got f32.
+ error: type mismatch in i64.extend_u/i32, expected [i32] but got [f32]
000001d: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:406: assert_invalid passed:
- error: type mismatch in i64.trunc_s/f32, expected f32 but got i32.
+ error: type mismatch in i64.trunc_s/f32, expected [f32] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:407: assert_invalid passed:
- error: type mismatch in i64.trunc_u/f32, expected f32 but got i32.
+ error: type mismatch in i64.trunc_u/f32, expected [f32] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:408: assert_invalid passed:
- error: type mismatch in i64.trunc_s/f64, expected f64 but got i32.
+ error: type mismatch in i64.trunc_s/f64, expected [f64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:409: assert_invalid passed:
- error: type mismatch in i64.trunc_u/f64, expected f64 but got i32.
+ error: type mismatch in i64.trunc_u/f64, expected [f64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:410: assert_invalid passed:
- error: type mismatch in i64.reinterpret/f64, expected f64 but got i32.
+ error: type mismatch in i64.reinterpret/f64, expected [f64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:411: assert_invalid passed:
- error: type mismatch in f32.convert_s/i32, expected i32 but got i64.
+ error: type mismatch in f32.convert_s/i32, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:412: assert_invalid passed:
- error: type mismatch in f32.convert_u/i32, expected i32 but got i64.
+ error: type mismatch in f32.convert_u/i32, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:413: assert_invalid passed:
- error: type mismatch in f32.convert_s/i64, expected i64 but got i32.
+ error: type mismatch in f32.convert_s/i64, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:414: assert_invalid passed:
- error: type mismatch in f32.convert_u/i64, expected i64 but got i32.
+ error: type mismatch in f32.convert_u/i64, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:415: assert_invalid passed:
- error: type mismatch in f32.demote/f64, expected f64 but got i32.
+ error: type mismatch in f32.demote/f64, expected [f64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:416: assert_invalid passed:
- error: type mismatch in f32.reinterpret/i32, expected i32 but got i64.
+ error: type mismatch in f32.reinterpret/i32, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:417: assert_invalid passed:
- error: type mismatch in f64.convert_s/i32, expected i32 but got i64.
+ error: type mismatch in f64.convert_s/i32, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:418: assert_invalid passed:
- error: type mismatch in f64.convert_u/i32, expected i32 but got i64.
+ error: type mismatch in f64.convert_u/i32, expected [i32] but got [i64]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:419: assert_invalid passed:
- error: type mismatch in f64.convert_s/i64, expected i64 but got i32.
+ error: type mismatch in f64.convert_s/i64, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:420: assert_invalid passed:
- error: type mismatch in f64.convert_u/i64, expected i64 but got i32.
+ error: type mismatch in f64.convert_u/i64, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:421: assert_invalid passed:
- error: type mismatch in f64.promote/f32, expected f32 but got i32.
+ error: type mismatch in f64.promote/f32, expected [f32] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:422: assert_invalid passed:
- error: type mismatch in f64.reinterpret/i64, expected i64 but got i32.
+ error: type mismatch in f64.reinterpret/i64, expected [i64] but got [i32]
000001a: error: OnConvertExpr callback failed
out/third_party/testsuite/typecheck.wast:425: assert_invalid passed:
- error: type mismatch in grow_memory, expected i32 but got f32.
+ error: type mismatch in grow_memory, expected [i32] but got [f32]
0000023: error: OnGrowMemoryExpr callback failed
193/193 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/unreached-invalid.txt b/test/spec/unreached-invalid.txt
index 8773ab57..16026243 100644
--- a/test/spec/unreached-invalid.txt
+++ b/test/spec/unreached-invalid.txt
@@ -13,331 +13,323 @@ out/third_party/testsuite/unreached-invalid.wast:16: assert_invalid passed:
error: invalid depth: 1 (max 0)
000001a: error: OnBrExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:21: assert_invalid passed:
- error: type mismatch in i64.eqz, expected i64 but got i32.
+ error: type mismatch in i64.eqz, expected [i64] but got [i32]
000001b: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:27: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:33: assert_invalid passed:
- error: type mismatch in select, expected i32 but got i64.
+ error: type mismatch in select, expected [i32, i32, i32] but got [i64, i32, i32]
0000023: error: OnSelectExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:42: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001b: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:46: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:50: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:56: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [any]
000001a: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:60: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [any]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:64: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:71: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001f: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:77: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:83: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
0000020: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:89: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:95: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
000001e: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:101: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
+ error: type mismatch in block, expected [i32] but got [f32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:107: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:113: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:119: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001c: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:125: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
0000022: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:132: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:138: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001e: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:144: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
000001d: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:150: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000020: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:156: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
000001d: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:162: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
+ error: type mismatch in block, expected [i32] but got [f32]
0000025: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:168: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
000001f: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:174: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:180: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001b: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:186: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
0000021: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:193: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:199: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:205: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001c: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:211: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
000001e: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:217: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
000001d: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:223: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000020: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:229: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
000001d: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:235: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
+ error: type mismatch in block, expected [i32] but got [f32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:241: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
000001f: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:247: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000021: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:253: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001b: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:259: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:265: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001e: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:271: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000020: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:277: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001f: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:284: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001f: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:290: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:296: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
0000020: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:302: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:308: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:314: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [i32] but got [... f32]
+ error: type mismatch in block, expected [] but got [i32]
0000026: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:321: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
0000022: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:327: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:334: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001e: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:340: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
0000022: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:348: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
0000020: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:354: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
0000022: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:360: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
0000021: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:366: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000024: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:372: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000021: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:378: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [i32] but got [... f32]
+ error: type mismatch in block, expected [] but got [i32]
0000027: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:384: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:390: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000025: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:396: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:402: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got f32.
+ error: type mismatch in implicit return, expected [i32] but got [f32]
0000023: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:409: assert_invalid passed:
- error: type stack size too small at i32.eqz. got 0, expected at least 1
+ error: type mismatch in i32.eqz, expected [i32] but got []
000001d: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:415: assert_invalid passed:
- error: type mismatch in i32.eqz, expected i32 but got f32.
+ error: type mismatch in i32.eqz, expected [i32] but got [f32]
0000021: error: OnConvertExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:421: assert_invalid passed:
- error: type stack size too small at f32.eq. got 1, expected at least 2
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32]
000001e: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:427: assert_invalid passed:
- error: type mismatch in f32.eq, expected f32 but got i32.
+ error: type mismatch in f32.eq, expected [f32, f32] but got [i32, f32]
0000023: error: OnCompareExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:433: assert_invalid passed:
- error: type stack at end of if is 1, expected 0
+ error: type mismatch in if, expected [] but got [i32]
000001e: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:439: assert_invalid passed:
error: if without else cannot have type signature.
- error: type mismatch in if, expected i32 but got f32.
+ error: type mismatch in if, expected [i32] but got [f32]
0000022: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:445: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:451: assert_invalid passed:
- error: type mismatch in block, expected i32 but got f32.
+ error: type mismatch in block, expected [i32] but got [f32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:457: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:463: assert_invalid passed:
- error: type mismatch in loop, expected i32 but got f32.
+ error: type mismatch in loop, expected [i32] but got [f32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:470: assert_invalid passed:
- error: type mismatch in return, expected i32 but got f64.
+ error: type mismatch in return, expected [i32] but got [f64]
0000025: error: OnReturnExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:477: assert_invalid passed:
- error: type mismatch in br, expected i32 but got f64.
+ error: type mismatch in br, expected [i32] but got [f64]
0000029: error: OnBrExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:484: assert_invalid passed:
- error: type mismatch in br_if, expected i32 but got f32.
+ error: type mismatch in br_if, expected [i32] but got [f32]
0000021: error: OnBrIfExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:490: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:498: assert_invalid passed:
- error: type mismatch in block, expected f32 but got i32.
+ error: type mismatch in block, expected [f32] but got [i32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:507: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:515: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got f32.
+ error: type mismatch in br_table, expected [i32] but got [f32]
0000022: error: OnBrTableExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:521: assert_invalid passed:
- error: type mismatch in br_table, expected i32 but got f32.
+ error: type mismatch in br_table, expected [i32] but got [f32]
0000025: error: OnBrTableExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:527: assert_invalid passed:
- error: type mismatch in br_table, expected void but got f32.
0000023: error: OnBrTableExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:539: assert_invalid passed:
- error: type mismatch in br_table, expected f64 but got f32.
0000023: error: OnBrTableExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:554: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:560: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000020: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:566: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000022: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:572: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:579: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000021: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:585: assert_invalid passed:
- error: type stack size too small at block. got 0, expected at least 1
+ error: type mismatch in block, expected [i32] but got []
0000022: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:591: assert_invalid passed:
- error: type mismatch in block, expected i32 but got i64.
+ error: type mismatch in block, expected [i32] but got [i64]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:598: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000023: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:604: assert_invalid passed:
- error: type stack size too small at block. got 0, expected at least 1
+ error: type mismatch in block, expected [i32] but got []
0000025: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:610: assert_invalid passed:
- error: type mismatch in block, expected i32 but got i64.
+ error: type mismatch in block, expected [i32] but got [i64]
0000027: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:618: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000024: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:625: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:631: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000022: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:637: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000024: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:643: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000025: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:651: assert_invalid passed:
- error: type stack at end of loop is 1, expected 0
+ error: type mismatch in loop, expected [] but got [i32]
0000020: error: OnEndExpr callback failed
out/third_party/testsuite/unreached-invalid.wast:657: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000020: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:663: assert_invalid passed:
- error: type mismatch in implicit return, expected i32 but got i64.
+ error: type mismatch in implicit return, expected [i32] but got [i64]
0000022: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:670: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
000001f: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:676: assert_invalid passed:
- error: type stack size too small at implicit return. got 0, expected at least 1
+ error: type mismatch in implicit return, expected [i32] but got []
0000020: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:683: assert_invalid passed:
- error: type stack at end of function is 1, expected 0
+ error: type mismatch in function, expected [] but got [i32]
000001d: error: EndFunctionBody callback failed
out/third_party/testsuite/unreached-invalid.wast:690: assert_invalid passed:
- error: type stack at end of block is 1, expected 0
+ error: type mismatch in block, expected [] but got [i32]
0000022: error: OnEndExpr callback failed
110/110 tests passed.
;;; STDOUT ;;)
diff --git a/test/typecheck/bad-atomic-type-mismatch.txt b/test/typecheck/bad-atomic-type-mismatch.txt
index ea6fb38a..aaf10abd 100644
--- a/test/typecheck/bad-atomic-type-mismatch.txt
+++ b/test/typecheck/bad-atomic-type-mismatch.txt
@@ -207,583 +207,583 @@
)
(;; STDERR ;;;
-out/test/typecheck/bad-atomic-type-mismatch.txt:8:33: error: type mismatch in wake, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:8:33: error: type mismatch in wake, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 wake drop)
^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:9:45: error: type mismatch in i32.wait, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:9:45: error: type mismatch in i32.wait, expected [i32, i32, i64] but got [f32, i32, i64]
(func f32.const 0 i32.const 0 i64.const 0 i32.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:10:45: error: type mismatch in i64.wait, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:10:45: error: type mismatch in i64.wait, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:11:21: error: type mismatch in i32.atomic.load, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:11:21: error: type mismatch in i32.atomic.load, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:12:21: error: type mismatch in i64.atomic.load, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:12:21: error: type mismatch in i64.atomic.load, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:13:21: error: type mismatch in i32.atomic.load8_u, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:13:21: error: type mismatch in i32.atomic.load8_u, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load8_u drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:14:21: error: type mismatch in i32.atomic.load16_u, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:14:21: error: type mismatch in i32.atomic.load16_u, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load16_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:15:21: error: type mismatch in i64.atomic.load8_u, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:15:21: error: type mismatch in i64.atomic.load8_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load8_u drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:16:21: error: type mismatch in i64.atomic.load16_u, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:16:21: error: type mismatch in i64.atomic.load16_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load16_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:17:21: error: type mismatch in i64.atomic.load32_u, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:17:21: error: type mismatch in i64.atomic.load32_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load32_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:18:33: error: type mismatch in i32.atomic.store, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:18:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:19:33: error: type mismatch in i64.atomic.store, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:19:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:20:33: error: type mismatch in i32.atomic.store8, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:20:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:21:33: error: type mismatch in i32.atomic.store16, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:21:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:22:33: error: type mismatch in i64.atomic.store8, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:22:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:23:33: error: type mismatch in i64.atomic.store16, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:23:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:24:33: error: type mismatch in i64.atomic.store32, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:24:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store32)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:25:33: error: type mismatch in i32.atomic.rmw.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:25:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:26:33: error: type mismatch in i64.atomic.rmw.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:26:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:27:33: error: type mismatch in i32.atomic.rmw8_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:27:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:28:33: error: type mismatch in i32.atomic.rmw16_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:28:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:29:33: error: type mismatch in i64.atomic.rmw8_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:29:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:30:33: error: type mismatch in i64.atomic.rmw16_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:30:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:31:33: error: type mismatch in i64.atomic.rmw32_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:31:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:32:33: error: type mismatch in i32.atomic.rmw.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:32:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:33:33: error: type mismatch in i64.atomic.rmw.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:33:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:34:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:34:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:35:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:35:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:36:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:36:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:37:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:37:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:38:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:38:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:39:33: error: type mismatch in i32.atomic.rmw.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:39:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:40:33: error: type mismatch in i64.atomic.rmw.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:40:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:41:33: error: type mismatch in i32.atomic.rmw8_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:41:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:42:33: error: type mismatch in i32.atomic.rmw16_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:42:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:43:33: error: type mismatch in i64.atomic.rmw8_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:43:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:44:33: error: type mismatch in i64.atomic.rmw16_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:44:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:45:33: error: type mismatch in i64.atomic.rmw32_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:45:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:46:33: error: type mismatch in i32.atomic.rmw.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:46:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:47:33: error: type mismatch in i64.atomic.rmw.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:47:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:48:33: error: type mismatch in i32.atomic.rmw8_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:48:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:49:33: error: type mismatch in i32.atomic.rmw16_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:49:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:50:33: error: type mismatch in i64.atomic.rmw8_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:50:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:51:33: error: type mismatch in i64.atomic.rmw16_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:51:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:52:33: error: type mismatch in i64.atomic.rmw32_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:52:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:53:33: error: type mismatch in i32.atomic.rmw.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:53:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:54:33: error: type mismatch in i64.atomic.rmw.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:54:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:55:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:55:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:56:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:56:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:57:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:57:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:58:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:58:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:59:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:59:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:60:33: error: type mismatch in i32.atomic.rmw.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:60:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:61:33: error: type mismatch in i64.atomic.rmw.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:61:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:62:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:62:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:63:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:63:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:64:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:64:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:65:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:65:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:66:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:66:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:67:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:67:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:68:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:68:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:69:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:69:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:70:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:70:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:71:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:71:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:72:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:72:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:73:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:73:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:76:33: error: type mismatch in wake, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:76:33: error: type mismatch in wake, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 wake drop)
^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:77:45: error: type mismatch in i32.wait, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:77:45: error: type mismatch in i32.wait, expected [i32, i32, i64] but got [i32, f32, i64]
(func i32.const 0 f32.const 0 i64.const 0 i32.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:78:45: error: type mismatch in i64.wait, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:78:45: error: type mismatch in i64.wait, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:79:33: error: type mismatch in i32.atomic.store, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:79:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:80:33: error: type mismatch in i64.atomic.store, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:80:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:81:33: error: type mismatch in i32.atomic.store8, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:81:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:82:33: error: type mismatch in i32.atomic.store16, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:82:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:83:33: error: type mismatch in i64.atomic.store8, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:83:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:84:33: error: type mismatch in i64.atomic.store16, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:84:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:85:33: error: type mismatch in i64.atomic.store32, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:85:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store32)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:86:33: error: type mismatch in i32.atomic.rmw.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:86:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:87:33: error: type mismatch in i64.atomic.rmw.add, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:87:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:88:33: error: type mismatch in i32.atomic.rmw8_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:88:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:89:33: error: type mismatch in i32.atomic.rmw16_u.add, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:89:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:90:33: error: type mismatch in i64.atomic.rmw8_u.add, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:90:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:91:33: error: type mismatch in i64.atomic.rmw16_u.add, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:91:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:92:33: error: type mismatch in i64.atomic.rmw32_u.add, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:92:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:93:33: error: type mismatch in i32.atomic.rmw.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:93:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:94:33: error: type mismatch in i64.atomic.rmw.sub, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:94:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:95:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:95:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:96:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:96:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:97:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:97:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:98:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:98:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:99:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:99:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:100:33: error: type mismatch in i32.atomic.rmw.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:100:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:101:33: error: type mismatch in i64.atomic.rmw.and, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:101:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:102:33: error: type mismatch in i32.atomic.rmw8_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:102:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:103:33: error: type mismatch in i32.atomic.rmw16_u.and, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:103:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:104:33: error: type mismatch in i64.atomic.rmw8_u.and, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:104:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:105:33: error: type mismatch in i64.atomic.rmw16_u.and, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:105:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:106:33: error: type mismatch in i64.atomic.rmw32_u.and, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:106:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:107:33: error: type mismatch in i32.atomic.rmw.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:107:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:108:33: error: type mismatch in i64.atomic.rmw.or, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:108:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:109:33: error: type mismatch in i32.atomic.rmw8_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:109:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:110:33: error: type mismatch in i32.atomic.rmw16_u.or, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:110:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:111:33: error: type mismatch in i64.atomic.rmw8_u.or, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:111:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:112:33: error: type mismatch in i64.atomic.rmw16_u.or, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:112:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:113:33: error: type mismatch in i64.atomic.rmw32_u.or, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:113:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:114:33: error: type mismatch in i32.atomic.rmw.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:114:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:115:33: error: type mismatch in i64.atomic.rmw.xor, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:115:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:116:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:116:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:117:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:117:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:118:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:118:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:119:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:119:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:120:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:120:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:121:33: error: type mismatch in i32.atomic.rmw.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:121:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:122:33: error: type mismatch in i64.atomic.rmw.xchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:122:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:123:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:123:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:124:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:124:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:125:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:125:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:126:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:126:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:127:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:127:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:128:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:128:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:129:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:129:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:130:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:130:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:131:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:131:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:132:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:132:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:133:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:133:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:134:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:134:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:137:45: error: type mismatch in i32.wait, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:137:45: error: type mismatch in i32.wait, expected [i32, i32, i64] but got [i32, i32, f64]
(func i32.const 0 i32.const 0 f64.const 0 i32.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:138:45: error: type mismatch in i64.wait, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:138:45: error: type mismatch in i64.wait, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.wait drop)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:139:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:139:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:140:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:140:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:141:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:141:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:142:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected i32 but got f32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:142:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:143:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:143:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:144:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:144:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:145:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected i64 but got f64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:145:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:148:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:148:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 wake)
^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:149:58: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:149:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i64.const 0 i32.wait)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:150:58: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:150:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i64.const 0 i64.const 0 i64.wait)
^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:151:34: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:151:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:152:34: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:152:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:153:34: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:153:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load8_u)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:154:34: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:154:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load16_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:155:34: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:155:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load8_u)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:156:34: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:156:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load16_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:157:34: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:157:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load32_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:158:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:158:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.add)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:159:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:159:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.add)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:160:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:160:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.add)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:161:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:161:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:162:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:162:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.add)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:163:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:163:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:164:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:164:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:165:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:165:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.sub)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:166:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:166:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.sub)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:167:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:167:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.sub)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:168:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:168:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:169:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:169:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.sub)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:170:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:170:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:171:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:171:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:172:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:172:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.and)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:173:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:173:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.and)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:174:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:174:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.and)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:175:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:175:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:176:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:176:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.and)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:177:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:177:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:178:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:178:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:179:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:179:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.or)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:180:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:180:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.or)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:181:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:181:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.or)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:182:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:182:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:183:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:183:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.or)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:184:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:184:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:185:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:185:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:186:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:186:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.xor)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:187:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:187:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.xor)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:188:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:188:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.xor)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:189:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:189:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:190:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:190:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.xor)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:191:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:191:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:192:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:192:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:193:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:193:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.xchg)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:194:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:194:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.xchg)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:195:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:195:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:196:46: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:196:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:197:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:197:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:198:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:198:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:199:46: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:199:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:200:58: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:200:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:201:58: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:201:58: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:202:58: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:202:58: error: type mismatch in implicit return, expected [f32] but got [i32]
...c (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:203:58: error: type mismatch in implicit return, expected f32 but got i32.
+out/test/typecheck/bad-atomic-type-mismatch.txt:203:58: error: type mismatch in implicit return, expected [f32] but got [i32]
... (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:204:58: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:204:58: error: type mismatch in implicit return, expected [f64] but got [i64]
...c (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:205:58: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:205:58: error: type mismatch in implicit return, expected [f64] but got [i64]
... (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:206:58: error: type mismatch in implicit return, expected f64 but got i64.
+out/test/typecheck/bad-atomic-type-mismatch.txt:206:58: error: type mismatch in implicit return, expected [f64] but got [i64]
... (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-binary-type-mismatch-1.txt b/test/typecheck/bad-binary-type-mismatch-1.txt
index 9ef8e1ad..1a4f5a2f 100644
--- a/test/typecheck/bad-binary-type-mismatch-1.txt
+++ b/test/typecheck/bad-binary-type-mismatch-1.txt
@@ -6,7 +6,7 @@
i32.add
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-binary-type-mismatch-1.txt:6:5: error: type mismatch in i32.add, expected i32 but got f32.
+out/test/typecheck/bad-binary-type-mismatch-1.txt:6:5: error: type mismatch in i32.add, expected [i32, i32] but got [f32, i32]
i32.add
^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-binary-type-mismatch-2.txt b/test/typecheck/bad-binary-type-mismatch-2.txt
index 9eff33b2..4730f26c 100644
--- a/test/typecheck/bad-binary-type-mismatch-2.txt
+++ b/test/typecheck/bad-binary-type-mismatch-2.txt
@@ -6,7 +6,7 @@
i32.add
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-binary-type-mismatch-2.txt:6:5: error: type mismatch in i32.add, expected i32 but got f32.
+out/test/typecheck/bad-binary-type-mismatch-2.txt:6:5: error: type mismatch in i32.add, expected [i32, i32] but got [i32, f32]
i32.add
^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-brtable-type-mismatch.txt b/test/typecheck/bad-brtable-type-mismatch.txt
index df1d62e2..cef35c27 100644
--- a/test/typecheck/bad-brtable-type-mismatch.txt
+++ b/test/typecheck/bad-brtable-type-mismatch.txt
@@ -11,7 +11,7 @@
end
i32.const 2))
(;; STDERR ;;;
-out/test/typecheck/bad-brtable-type-mismatch.txt:7:9: error: type mismatch in br_table, expected i32 but got f32.
+out/test/typecheck/bad-brtable-type-mismatch.txt:7:9: error: type mismatch in br_table, expected [i32] but got [f32]
br_table 0 1
^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-call-result-mismatch.txt b/test/typecheck/bad-call-result-mismatch.txt
index aa5ebf67..1c267a85 100644
--- a/test/typecheck/bad-call-result-mismatch.txt
+++ b/test/typecheck/bad-call-result-mismatch.txt
@@ -23,22 +23,22 @@
nop
end))
(;; STDERR ;;;
-out/test/typecheck/bad-call-result-mismatch.txt:9:5: error: type stack size too small at if. got 0, expected at least 1
+out/test/typecheck/bad-call-result-mismatch.txt:9:5: error: type mismatch in if, expected [i32] but got []
if
^^
-out/test/typecheck/bad-call-result-mismatch.txt:10:7: error: type stack at end of if true branch is 1, expected 0
+out/test/typecheck/bad-call-result-mismatch.txt:10:7: error: type mismatch in if true branch, expected [] but got [i64]
call $direct
^^^^
-out/test/typecheck/bad-call-result-mismatch.txt:14:5: error: type stack size too small at if. got 0, expected at least 1
+out/test/typecheck/bad-call-result-mismatch.txt:14:5: error: type mismatch in if, expected [i32] but got []
if
^^
-out/test/typecheck/bad-call-result-mismatch.txt:15:7: error: type stack at end of if true branch is 1, expected 0
+out/test/typecheck/bad-call-result-mismatch.txt:15:7: error: type mismatch in if true branch, expected [] but got [f32]
call $import
^^^^
-out/test/typecheck/bad-call-result-mismatch.txt:19:5: error: type stack size too small at if. got 0, expected at least 1
+out/test/typecheck/bad-call-result-mismatch.txt:19:5: error: type mismatch in if, expected [i32] but got []
if
^^
-out/test/typecheck/bad-call-result-mismatch.txt:21:7: error: type stack at end of if true branch is 1, expected 0
+out/test/typecheck/bad-call-result-mismatch.txt:21:7: error: type mismatch in if true branch, expected [] but got [i64]
call_indirect $indirect
^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-call-type-mismatch.txt b/test/typecheck/bad-call-type-mismatch.txt
index 1908bdd1..de8c8225 100644
--- a/test/typecheck/bad-call-type-mismatch.txt
+++ b/test/typecheck/bad-call-type-mismatch.txt
@@ -5,7 +5,7 @@
i64.const 0
call 0))
(;; STDERR ;;;
-out/test/typecheck/bad-call-type-mismatch.txt:6:5: error: type mismatch in call, expected i32 but got i64.
+out/test/typecheck/bad-call-type-mismatch.txt:6:5: error: type mismatch in call, expected [i32, i64] but got [i64, i64]
call 0))
^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-callimport-type-mismatch.txt b/test/typecheck/bad-callimport-type-mismatch.txt
index 9bf64772..416b969a 100644
--- a/test/typecheck/bad-callimport-type-mismatch.txt
+++ b/test/typecheck/bad-callimport-type-mismatch.txt
@@ -5,7 +5,7 @@
f32.const 0
call 0))
(;; STDERR ;;;
-out/test/typecheck/bad-callimport-type-mismatch.txt:6:5: error: type mismatch in call, expected i32 but got f32.
+out/test/typecheck/bad-callimport-type-mismatch.txt:6:5: error: type mismatch in call, expected [i32] but got [f32]
call 0))
^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-callindirect-func-type-mismatch.txt b/test/typecheck/bad-callindirect-func-type-mismatch.txt
index a109c199..480f0dd7 100644
--- a/test/typecheck/bad-callindirect-func-type-mismatch.txt
+++ b/test/typecheck/bad-callindirect-func-type-mismatch.txt
@@ -6,7 +6,7 @@
f32.const 0
call_indirect $t))
(;; STDERR ;;;
-out/test/typecheck/bad-callindirect-func-type-mismatch.txt:7:5: error: type mismatch in call_indirect, expected i32 but got f32.
+out/test/typecheck/bad-callindirect-func-type-mismatch.txt:7:5: error: type mismatch in call_indirect, expected [i32] but got [f32]
call_indirect $t))
^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-callindirect-type-mismatch.txt b/test/typecheck/bad-callindirect-type-mismatch.txt
index 11e7d7fd..476bcdba 100644
--- a/test/typecheck/bad-callindirect-type-mismatch.txt
+++ b/test/typecheck/bad-callindirect-type-mismatch.txt
@@ -9,7 +9,7 @@
call_indirect $t
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-callindirect-type-mismatch.txt:9:5: error: type mismatch in call_indirect, expected i32 but got f32.
+out/test/typecheck/bad-callindirect-type-mismatch.txt:9:5: error: type mismatch in call_indirect, expected [i32] but got [f32]
call_indirect $t
^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-cast-type-mismatch.txt b/test/typecheck/bad-cast-type-mismatch.txt
index 0b94c732..56c4c0e2 100644
--- a/test/typecheck/bad-cast-type-mismatch.txt
+++ b/test/typecheck/bad-cast-type-mismatch.txt
@@ -5,7 +5,7 @@
f32.reinterpret/i32
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-cast-type-mismatch.txt:5:5: error: type mismatch in f32.reinterpret/i32, expected i32 but got f32.
+out/test/typecheck/bad-cast-type-mismatch.txt:5:5: error: type mismatch in f32.reinterpret/i32, expected [i32] but got [f32]
f32.reinterpret/i32
^^^^^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-compare-type-mismatch-1.txt b/test/typecheck/bad-compare-type-mismatch-1.txt
index 4cab0871..f470b920 100644
--- a/test/typecheck/bad-compare-type-mismatch-1.txt
+++ b/test/typecheck/bad-compare-type-mismatch-1.txt
@@ -6,7 +6,7 @@
i32.eq
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-compare-type-mismatch-1.txt:6:5: error: type mismatch in i32.eq, expected i32 but got f32.
+out/test/typecheck/bad-compare-type-mismatch-1.txt:6:5: error: type mismatch in i32.eq, expected [i32, i32] but got [f32, i32]
i32.eq
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-compare-type-mismatch-2.txt b/test/typecheck/bad-compare-type-mismatch-2.txt
index 1ac0ae1e..198b4b9e 100644
--- a/test/typecheck/bad-compare-type-mismatch-2.txt
+++ b/test/typecheck/bad-compare-type-mismatch-2.txt
@@ -6,7 +6,7 @@
f32.lt
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-compare-type-mismatch-2.txt:6:5: error: type mismatch in f32.lt, expected f32 but got i32.
+out/test/typecheck/bad-compare-type-mismatch-2.txt:6:5: error: type mismatch in f32.lt, expected [f32, f32] but got [f32, i32]
f32.lt
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-convert-type-mismatch.txt b/test/typecheck/bad-convert-type-mismatch.txt
index 60316ed1..09887e0c 100644
--- a/test/typecheck/bad-convert-type-mismatch.txt
+++ b/test/typecheck/bad-convert-type-mismatch.txt
@@ -5,7 +5,7 @@
i32.trunc_s/f32
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-convert-type-mismatch.txt:5:5: error: type mismatch in i32.trunc_s/f32, expected f32 but got i32.
+out/test/typecheck/bad-convert-type-mismatch.txt:5:5: error: type mismatch in i32.trunc_s/f32, expected [f32] but got [i32]
i32.trunc_s/f32
^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-expr-if.txt b/test/typecheck/bad-expr-if.txt
index a295841b..cf69b327 100644
--- a/test/typecheck/bad-expr-if.txt
+++ b/test/typecheck/bad-expr-if.txt
@@ -9,7 +9,10 @@
end
i32.add))
(;; STDERR ;;;
-out/test/typecheck/bad-expr-if.txt:10:5: error: type stack size too small at i32.add. got 1, expected at least 2
+out/test/typecheck/bad-expr-if.txt:10:5: error: type mismatch in i32.add, expected [i32, i32] but got [i32]
+ i32.add))
+ ^^^^^^^
+out/test/typecheck/bad-expr-if.txt:10:5: error: type mismatch in function, expected [] but got [i32]
i32.add))
^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-function-result-type-mismatch.txt b/test/typecheck/bad-function-result-type-mismatch.txt
index 376ecc3a..0df06571 100644
--- a/test/typecheck/bad-function-result-type-mismatch.txt
+++ b/test/typecheck/bad-function-result-type-mismatch.txt
@@ -3,7 +3,7 @@
(func (result i32)
f32.const 0))
(;; STDERR ;;;
-out/test/typecheck/bad-function-result-type-mismatch.txt:4:5: error: type mismatch in implicit return, expected i32 but got f32.
+out/test/typecheck/bad-function-result-type-mismatch.txt:4:5: error: type mismatch in implicit return, expected [i32] but got [f32]
f32.const 0))
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-grow-memory-type-mismatch.txt b/test/typecheck/bad-grow-memory-type-mismatch.txt
index 1cf5e70d..eacad8e5 100644
--- a/test/typecheck/bad-grow-memory-type-mismatch.txt
+++ b/test/typecheck/bad-grow-memory-type-mismatch.txt
@@ -6,7 +6,7 @@
grow_memory
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-grow-memory-type-mismatch.txt:6:5: error: type mismatch in grow_memory, expected i32 but got f32.
+out/test/typecheck/bad-grow-memory-type-mismatch.txt:6:5: error: type mismatch in grow_memory, expected [i32] but got [f32]
grow_memory
^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-if-condition-type-mismatch.txt b/test/typecheck/bad-if-condition-type-mismatch.txt
index a549c902..a73e04ec 100644
--- a/test/typecheck/bad-if-condition-type-mismatch.txt
+++ b/test/typecheck/bad-if-condition-type-mismatch.txt
@@ -10,7 +10,7 @@
drop)
)
(;; STDERR ;;;
-out/test/typecheck/bad-if-condition-type-mismatch.txt:5:5: error: type mismatch in if, expected i32 but got f32.
+out/test/typecheck/bad-if-condition-type-mismatch.txt:5:5: error: type mismatch in if, expected [i32] but got [f32]
if (result i32)
^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-if-type-mismatch.txt b/test/typecheck/bad-if-type-mismatch.txt
index 6f28c0a8..255331ba 100644
--- a/test/typecheck/bad-if-type-mismatch.txt
+++ b/test/typecheck/bad-if-type-mismatch.txt
@@ -9,7 +9,7 @@
end
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-if-type-mismatch.txt:6:7: error: type mismatch in if true branch, expected i32 but got f32.
+out/test/typecheck/bad-if-type-mismatch.txt:6:7: error: type mismatch in if true branch, expected [i32] but got [f32]
f32.const 0
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-if-value-void.txt b/test/typecheck/bad-if-value-void.txt
index 3c07f276..04ae23ec 100644
--- a/test/typecheck/bad-if-value-void.txt
+++ b/test/typecheck/bad-if-value-void.txt
@@ -11,7 +11,7 @@
drop
end))
(;; STDERR ;;;
-out/test/typecheck/bad-if-value-void.txt:7:9: error: type stack size too small at if true branch. got 0, expected at least 1
+out/test/typecheck/bad-if-value-void.txt:7:9: error: type mismatch in if true branch, expected [f32] but got []
nop
^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-load-type-mismatch.txt b/test/typecheck/bad-load-type-mismatch.txt
index b990e029..951ac35c 100644
--- a/test/typecheck/bad-load-type-mismatch.txt
+++ b/test/typecheck/bad-load-type-mismatch.txt
@@ -6,7 +6,7 @@
i32.load
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-load-type-mismatch.txt:6:5: error: type mismatch in i32.load, expected i32 but got f32.
+out/test/typecheck/bad-load-type-mismatch.txt:6:5: error: type mismatch in i32.load, expected [i32] but got [f32]
i32.load
^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-nested-br.txt b/test/typecheck/bad-nested-br.txt
index 0a392c98..9beafbbd 100644
--- a/test/typecheck/bad-nested-br.txt
+++ b/test/typecheck/bad-nested-br.txt
@@ -18,7 +18,7 @@
;; return statement here, or a value returned from (br $outer).
))
(;; STDERR ;;;
-out/test/typecheck/bad-nested-br.txt:15:7: error: type stack size too small at implicit return. got 0, expected at least 1
+out/test/typecheck/bad-nested-br.txt:15:7: error: type mismatch in implicit return, expected [i32] but got []
return
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-return-type-mismatch.txt b/test/typecheck/bad-return-type-mismatch.txt
index 04915db1..bbcb58d5 100644
--- a/test/typecheck/bad-return-type-mismatch.txt
+++ b/test/typecheck/bad-return-type-mismatch.txt
@@ -4,7 +4,7 @@
f32.const 0
return))
(;; STDERR ;;;
-out/test/typecheck/bad-return-type-mismatch.txt:5:5: error: type mismatch in return, expected i32 but got f32.
+out/test/typecheck/bad-return-type-mismatch.txt:5:5: error: type mismatch in return, expected [i32] but got [f32]
return))
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-select-cond.txt b/test/typecheck/bad-select-cond.txt
index 498116b1..d5053315 100644
--- a/test/typecheck/bad-select-cond.txt
+++ b/test/typecheck/bad-select-cond.txt
@@ -1,12 +1,12 @@
;;; ERROR: 1
(module
(func (result i32)
+ f32.const 0
i32.const 0
i32.const 0
- f32.const 0
select))
(;; STDERR ;;;
-out/test/typecheck/bad-select-cond.txt:7:5: error: type mismatch in select, expected i32 but got f32.
+out/test/typecheck/bad-select-cond.txt:7:5: error: type mismatch in select, expected [i32, i32, i32] but got [f32, i32, i32]
select))
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-select-value0.txt b/test/typecheck/bad-select-value0.txt
index 0e9e1172..162f04e4 100644
--- a/test/typecheck/bad-select-value0.txt
+++ b/test/typecheck/bad-select-value0.txt
@@ -1,12 +1,13 @@
;;; ERROR: 1
(module
- (func (result f32)
+ (func
+ i32.const 0
f64.const 0
f32.const 0
- i32.const 0
- select))
+ select
+ drop))
(;; STDERR ;;;
-out/test/typecheck/bad-select-value0.txt:7:5: error: type mismatch in select, expected f32 but got f64.
- select))
+out/test/typecheck/bad-select-value0.txt:7:5: error: type mismatch in select, expected [i32, f64, f64] but got [i32, f64, f32]
+ select
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-select-value1.txt b/test/typecheck/bad-select-value1.txt
index 338facf6..c9c9fbf0 100644
--- a/test/typecheck/bad-select-value1.txt
+++ b/test/typecheck/bad-select-value1.txt
@@ -1,13 +1,13 @@
;;; ERROR: 1
(module
(func
+ i32.const 0
i64.const 0
f32.const 0
- i32.const 0
select
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-select-value1.txt:7:5: error: type mismatch in select, expected f32 but got i64.
+out/test/typecheck/bad-select-value1.txt:7:5: error: type mismatch in select, expected [i32, i64, i64] but got [i32, i64, f32]
select
^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-setlocal-type-mismatch.txt b/test/typecheck/bad-setlocal-type-mismatch.txt
index 2461f33e..6f19b16d 100644
--- a/test/typecheck/bad-setlocal-type-mismatch.txt
+++ b/test/typecheck/bad-setlocal-type-mismatch.txt
@@ -4,7 +4,7 @@
f32.const 0
set_local 0))
(;; STDERR ;;;
-out/test/typecheck/bad-setlocal-type-mismatch.txt:5:5: error: type mismatch in set_local, expected i32 but got f32.
+out/test/typecheck/bad-setlocal-type-mismatch.txt:5:5: error: type mismatch in set_local, expected [i32] but got [f32]
set_local 0))
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-store-index-type-mismatch.txt b/test/typecheck/bad-store-index-type-mismatch.txt
index 726e8855..4ce212ea 100644
--- a/test/typecheck/bad-store-index-type-mismatch.txt
+++ b/test/typecheck/bad-store-index-type-mismatch.txt
@@ -6,7 +6,7 @@
f32.const 0
i32.store))
(;; STDERR ;;;
-out/test/typecheck/bad-store-index-type-mismatch.txt:7:5: error: type mismatch in i32.store, expected i32 but got f32.
+out/test/typecheck/bad-store-index-type-mismatch.txt:7:5: error: type mismatch in i32.store, expected [i32, i32] but got [i32, f32]
i32.store))
^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-unary-type-mismatch.txt b/test/typecheck/bad-unary-type-mismatch.txt
index 7b8a4771..9736b74d 100644
--- a/test/typecheck/bad-unary-type-mismatch.txt
+++ b/test/typecheck/bad-unary-type-mismatch.txt
@@ -5,7 +5,7 @@
f32.neg
drop))
(;; STDERR ;;;
-out/test/typecheck/bad-unary-type-mismatch.txt:5:5: error: type mismatch in f32.neg, expected f32 but got f64.
+out/test/typecheck/bad-unary-type-mismatch.txt:5:5: error: type mismatch in f32.neg, expected [f32] but got [f64]
f32.neg
^^^^^^^
;;; STDERR ;;)