diff --git a/interpreter/valid/valid.ml b/interpreter/valid/valid.ml index 90bf74a0..9c07c003 100644 --- a/interpreter/valid/valid.ml +++ b/interpreter/valid/valid.ml @@ -205,7 +205,7 @@ let check_memory_type (c : context) (mt : memory_type) at = let check_tag_type (c : context) (et : tag_type) at = match et with - | TagT dt -> check_func_type c (as_func_str_type (expand_def_type dt)) at + | TagT dt -> let _ft = as_func_str_type (expand_def_type dt) in () let check_global_type (c : context) (gt : global_type) at = let GlobalT (_mut, t) = gt in diff --git a/test/core/tag.wast b/test/core/tag.wast index e970c1f4..e29c27d6 100644 --- a/test/core/tag.wast +++ b/test/core/tag.wast @@ -21,6 +21,14 @@ ;; "non-empty tag result type" ;; ) +;; Mutually recursive types +(module + (rec + (type $f (func (param (ref null $c)))) + (type $c (cont $f)) + ) + (tag (type $f)) +) ;; Link-time typing