;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.

;; RUN: wasm-opt -all %s -S -o - | filecheck %s

;; Check that `struct` is correctly parsed as an alias for `data`.
(module
  ;; CHECK:      (func $foo (type $structref_ref|struct|_=>_none) (param $x structref) (param $y (ref struct))
  ;; CHECK-NEXT:  (unreachable)
  ;; CHECK-NEXT: )
  (func $foo (param $x structref) (param $y (ref struct))
    (unreachable)
  )
)
