summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parser/contexts.h12
-rw-r--r--test/lit/parse-bad-block-params.wast12
2 files changed, 18 insertions, 6 deletions
diff --git a/src/parser/contexts.h b/src/parser/contexts.h
index 7e70b6776..387cb146e 100644
--- a/src/parser/contexts.h
+++ b/src/parser/contexts.h
@@ -1259,12 +1259,6 @@ struct ParseModuleTypesCtx : TypeParserCtx<ParseModuleTypesCtx>,
}
Result<HeapType> getBlockTypeFromTypeUse(Index pos, TypeUse use) {
- assert(use.type.isSignature());
- if (use.type.getSignature().params != Type::none) {
- return in.err(pos, "block parameters not yet supported");
- }
- // TODO: Once we support block parameters, return an error here if any of
- // them are named.
return use.type;
}
@@ -1451,6 +1445,12 @@ struct ParseDefsCtx : TypeParserCtx<ParseDefsCtx> {
}
Result<HeapType> getBlockTypeFromTypeUse(Index pos, HeapType type) {
+ assert(type.isSignature());
+ if (type.getSignature().params != Type::none) {
+ return in.err(pos, "block parameters not yet supported");
+ }
+ // TODO: Once we support block parameters, return an error here if any of
+ // them are named.
return type;
}
diff --git a/test/lit/parse-bad-block-params.wast b/test/lit/parse-bad-block-params.wast
new file mode 100644
index 000000000..67e05989c
--- /dev/null
+++ b/test/lit/parse-bad-block-params.wast
@@ -0,0 +1,12 @@
+;; RUN: not wasm-opt %s -S -o - 2>&1 | filecheck %s
+
+;; CHECK: 8:11: error: block parameters not yet supported
+
+(module
+ (func
+ (i32.const 0)
+ (block (param i32)
+ (drop)
+ )
+ )
+)