| ;; Test type definitions |
| |
| (module |
| (type (func)) |
| (type $t (func)) |
| |
| (type (func (param i32))) |
| (type (func (param $x i32))) |
| (type (func (result i32))) |
| (type (func (param i32) (result i32))) |
| (type (func (param $x i32) (result i32))) |
| |
| (type (func (param f32 f64))) |
| ;; (type (func (result i64 f32))) |
| ;; (type (func (param i32 i64) (result f32 f64))) |
| |
| (type (func (param f32) (param f64))) |
| (type (func (param $x f32) (param f64))) |
| (type (func (param f32) (param $y f64))) |
| (type (func (param $x f32) (param $y f64))) |
| ;; (type (func (result i64) (result f32))) |
| ;; (type (func (param i32) (param i64) (result f32) (result f64))) |
| ;; (type (func (param $x i32) (param $y i64) (result f32) (result f64))) |
| |
| (type (func (param f32 f64) (param $x i32) (param f64 i32 i32))) |
| ;; (type (func (result i64 i64 f32) (result f32 i32))) |
| ;; (type |
| ;; (func (param i32 i32) (param i64 i32) (result f32 f64) (result f64 i32)) |
| ;; ) |
| |
| (type (func (param) (param $x f32) (param) (param) (param f64 i32) (param))) |
| ;; (type |
| ;; (func (result) (result) (result i64 i64) (result) (result f32) (result)) |
| ;; ) |
| ;; (type |
| ;; (func |
| ;; (param i32 i32) (param i64 i32) (param) (param $x i32) (param) |
| ;; (result) (result f32 f64) (result f64 i32) (result) |
| ;; ) |
| ;; ) |
| ) |
| |
| (assert_malformed |
| (module quote "(type (func (result i32) (param i32)))") |
| "result before parameter" |
| ) |
| (assert_malformed |
| (module quote "(type (func (result $x i32)))") |
| "unexpected token" |
| ) |
| |
| (assert_invalid |
| (module (type (func (result i32 i32)))) |
| "invalid result arity" |
| ) |
| (assert_invalid |
| (module (type (func (result i32) (result i32)))) |
| "invalid result arity" |
| ) |