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

;; Regression test for a bug in which field names were not printed in nominal mode.

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

(module
  ;; CHECK:      (type $struct (struct_subtype (field (mut i32)) (field f32) (field $named f64) data))
  (type $struct (struct
    (field (mut i32))
    (field f32)
    (field $named f64)
  ))

  ;; CHECK:      (func $foo (type $func.0) (param $0 (ref $struct))
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (struct.get $struct $named
  ;; CHECK-NEXT:    (local.get $0)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  (func $foo (param (ref $struct))
    (drop
      (struct.get $struct $named
        (local.get 0)
      )
    )
  )
)
