summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2024-09-11 15:59:55 -0700
committerGitHub <noreply@github.com>2024-09-11 22:59:55 +0000
commit0cbe03a13abd4a59dafce5042ac979adf151a702 (patch)
tree610b72abdf11ceaeacf1b002d0dd1531caf9144e /src
parent0901ba7fff0bac1def4d457b15e4771368abf00d (diff)
downloadbinaryen-0cbe03a13abd4a59dafce5042ac979adf151a702.tar.gz
binaryen-0cbe03a13abd4a59dafce5042ac979adf151a702.tar.bz2
binaryen-0cbe03a13abd4a59dafce5042ac979adf151a702.zip
Fix parser error on block params (#6932)
The error checking we had to report an error when the input contains block parameters was in a code path that is no longer executed under normal circumstances. Specifically, it was part of the `ParseModuleTypesCtx` phase of parsing, which no longer parses function bodies. Move the error checking to the `ParseDefsCtx` phase, which does parse function bodies. Fixes #6929.
Diffstat (limited to 'src')
-rw-r--r--src/parser/contexts.h12
1 files changed, 6 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;
}