diff options
author | Thomas Lively <tlively@google.com> | 2022-10-18 13:54:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-18 13:54:22 -0500 |
commit | 8377174c3bb56b58cda054b3210799439004e229 (patch) | |
tree | 0d172db76ef1409b4c2e4134a39e1418dfbb52fc /test/lit/arrays.wast | |
parent | 6bef18672fae68ee4976a7b26f277f6caa32734f (diff) | |
download | binaryen-8377174c3bb56b58cda054b3210799439004e229.tar.gz binaryen-8377174c3bb56b58cda054b3210799439004e229.tar.bz2 binaryen-8377174c3bb56b58cda054b3210799439004e229.zip |
Parse and emit `array.len` without a type annotation (#5151)
Test that we can still parse the old annotated form as well.
Diffstat (limited to 'test/lit/arrays.wast')
-rw-r--r-- | test/lit/arrays.wast | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/test/lit/arrays.wast b/test/lit/arrays.wast index b79ca1844..31aead1cd 100644 --- a/test/lit/arrays.wast +++ b/test/lit/arrays.wast @@ -11,25 +11,25 @@ (module (type $byte-array (array (mut i8))) + ;; CHECK: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) + ;; CHECK: (type $ref|array|_=>_i32 (func (param (ref array)) (result i32))) ;; CHECK: (type $nullref_=>_i32 (func (param nullref) (result i32))) - ;; CHECK: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) - ;; CHECK: (func $len (param $a (ref array)) (result i32) - ;; CHECK-NEXT: (array.len array + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (local.get $a) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; ROUNDTRIP: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) + ;; ROUNDTRIP: (type $ref|array|_=>_i32 (func (param (ref array)) (result i32))) ;; ROUNDTRIP: (type $nullref_=>_i32 (func (param nullref) (result i32))) - ;; ROUNDTRIP: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) - ;; ROUNDTRIP: (func $len (param $a (ref array)) (result i32) - ;; ROUNDTRIP-NEXT: (array.len array + ;; ROUNDTRIP-NEXT: (array.len ;; ROUNDTRIP-NEXT: (local.get $a) ;; ROUNDTRIP-NEXT: ) ;; ROUNDTRIP-NEXT: ) @@ -41,12 +41,12 @@ ) ;; CHECK: (func $impossible-len (param $none nullref) (result i32) - ;; CHECK-NEXT: (array.len none + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (local.get $none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; ROUNDTRIP: (func $impossible-len (param $none nullref) (result i32) - ;; ROUNDTRIP-NEXT: (array.len none + ;; ROUNDTRIP-NEXT: (array.len ;; ROUNDTRIP-NEXT: (local.get $none) ;; ROUNDTRIP-NEXT: ) ;; ROUNDTRIP-NEXT: ) @@ -57,7 +57,7 @@ ) ;; CHECK: (func $unreachable-len (param $a arrayref) (result i32) - ;; CHECK-NEXT: (array.len array + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -69,4 +69,20 @@ (unreachable) ) ) + + ;; CHECK: (func $unannotated-len (param $a arrayref) (result i32) + ;; CHECK-NEXT: (array.len + ;; CHECK-NEXT: (local.get $a) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; ROUNDTRIP: (func $unannotated-len (param $a arrayref) (result i32) + ;; ROUNDTRIP-NEXT: (array.len + ;; ROUNDTRIP-NEXT: (local.get $a) + ;; ROUNDTRIP-NEXT: ) + ;; ROUNDTRIP-NEXT: ) + (func $unannotated-len (param $a arrayref) (result i32) + (array.len + (local.get $a) + ) + ) ) |