summaryrefslogtreecommitdiff
path: root/test/lit/nominal-to-isorecursive.wast
blob: 0d31a37a4e851ef0409e27c266da9d5e4327b342 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.

;; RUN: wasm-as %s -all --nominal -g -o %t.wasm
;; RUN: wasm-dis %t.wasm -all --hybrid -o - | filecheck %s

;; Check that the nominal binary format is parseable as isorecursive with a
;; single recursion group.

(module
  ;; CHECK:      (rec
  ;; CHECK-NEXT:  (type $make-super-t (func_subtype (result (ref $super)) func))

  ;; CHECK:       (type $make-sub-t (func_subtype (result (ref $sub)) func))

  ;; CHECK:       (type $super (struct_subtype (field i32) data))
  (type $super (struct i32))
  ;; CHECK:       (type $sub (struct_subtype (field i32) $super))
  (type $sub (struct_subtype i32 $super))
  (type $make-super-t (func (result (ref $super))))
  (type $make-sub-t (func (result (ref $sub))))

  ;; CHECK:      (func $make-super (type $make-super-t) (result (ref $super))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $make-super (type $make-super-t)
    (unreachable)
  )

  ;; CHECK:      (func $make-sub (type $make-sub-t) (result (ref $sub))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $make-sub (type $make-sub-t)
    (unreachable)
  )
)