wasm-tools 1.248.0

CLI tools for interoperating with WebAssembly files
Documentation
;; RUN: wast --assert default --snapshot tests/snapshots %

(component definition
  (func (import "a"))
  (component)
  (instance (instantiate 0 (with "NotKebab-Case" (func 0))))
)

(assert_invalid
  (component
    (import "f" (func))
    (instance (export "1" (func 0)))
  )
  "`1` is not in kebab case"
)

(assert_invalid
  (component
    (instance)
    (alias export 0 "Xml" (func))
  )
  "instance 0 has no export named `Xml`"
)

(assert_invalid
  (component
    (type (flags "0-a-1-c"))
  )
  "flag name `0-a-1-c` is not in kebab case"
)

(assert_invalid
  (component
    (type (enum "NevEr"))
  )
  "enum tag name `NevEr` is not in kebab case"
)

(assert_invalid
  (component
    (type (record (field "GoNnA" string)))
  )
  "record field name `GoNnA` is not in kebab case"
)

(assert_invalid
  (component
    (type (variant (case "GIVe" string)))
  )
  "variant case name `GIVe` is not in kebab case"
)


(assert_invalid
  (component
    (type (func (param "yOu" string)))
  )
  "function parameter name `yOu` is not in kebab case"
)

(assert_invalid
  (component
    (type (component (export "NevEr" (func))))
  )
  "`NevEr` is not in kebab case"
)

(assert_invalid
  (component
    (type (component (import "GonnA" (func))))
  )
  "`GonnA` is not in kebab case"
)

(assert_invalid
  (component
    (type (instance (export "lET" (func))))
  )
  "`lET` is not in kebab case"
)

(assert_invalid
  (component
    (instance (export "YoU"))
  )
  "`YoU` is not in kebab case"
)

(assert_invalid
  (component
    (instance (import "DOWn"))
  )
  "`DOWn` is not in kebab case"
)

(assert_invalid
  (component
    (instance (import "A:b/c"))
  )
  "character `A` is not lowercase in package name/namespace"
)
(assert_invalid
  (component
    (instance (import "a:B/c"))
  )
  "character `B` is not lowercase in package name/namespace"
)
(component
  (instance (import "a:b/c"))
  (instance (import "a1:b1/c"))
)

(component definition
  (import "a" (type $a (sub resource)))
  (import "[constructor]a" (func (result (own $a))))
)

(assert_invalid
  (component
    (import "a" (type $a (sub resource)))
    (import "[method]a.a" (func (param "self" (borrow $a))))
  )
  "import name `[method]a.a` conflicts with previous name `a`")

(assert_invalid
  (component
    (import "a" (type $a (sub resource)))
    (import "[static]a.a" (func))
  )
  "import name `[static]a.a` conflicts with previous name `a`")

(component
  (type (flags "a-1-c"))
)