;; 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 $ref|$struct|_=>_none) (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)
      )
    )
  )
)
