diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/fuzz-types/nominal.test | 24 | ||||
-rw-r--r-- | test/lit/fuzz-types/structural.test | 47 |
2 files changed, 71 insertions, 0 deletions
diff --git a/test/lit/fuzz-types/nominal.test b/test/lit/fuzz-types/nominal.test new file mode 100644 index 000000000..14dd80ac6 --- /dev/null +++ b/test/lit/fuzz-types/nominal.test @@ -0,0 +1,24 @@ +;; RUN: wasm-fuzz-types --nominal -v --seed=0 + +;; CHECK: Running with seed 0 +;; CHECK-NEXT: Built 20 types: +;; CHECK-NEXT: 0: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 1: (array (mut (ref null data))) +;; CHECK-NEXT: 2: (func (result (ref null (func (result ...1 i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))))))) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 3: (func (result (ref null (func (result ...1 i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))))))) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 4: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 5: (func (result (ref null (func (result ...1 i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))))))) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 6: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32) (rtt (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))) (mut (ref null i31)) (mut dataref))) +;; CHECK-NEXT: 7: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 8: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 9: (func (result (ref null ...1) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 10: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 11: (array (mut (ref null data))) +;; CHECK-NEXT: 12: (struct (field (ref ...1) (mut f32))) +;; CHECK-NEXT: 13: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32) (rtt (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))) (mut (ref null i31)) (mut dataref))) +;; CHECK-NEXT: 14: (func (result (ref null (func (result ...1 i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))))))) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 15: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) +;; CHECK-NEXT: 16: (func (result (ref null (func (result ...1 i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))))))) i32 (ref null (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32)))))) +;; CHECK-NEXT: 17: (array (mut (ref null data))) +;; CHECK-NEXT: 18: (array (mut (ref null data))) +;; CHECK-NEXT: 19: (struct (field (ref (struct (field ...1 (mut f32)))) (mut f32))) diff --git a/test/lit/fuzz-types/structural.test b/test/lit/fuzz-types/structural.test new file mode 100644 index 000000000..efb605740 --- /dev/null +++ b/test/lit/fuzz-types/structural.test @@ -0,0 +1,47 @@ +;; RUN: wasm-fuzz-types --structural -v --seed=0 + +;; CHECK: Running with seed 0 +;; CHECK-NEXT: Built 20 types: +;; CHECK-NEXT: 0: (struct (field anyref (mut f32))) +;; CHECK-NEXT: 1: (func (result i64)) +;; CHECK-NEXT: 2: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 3: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 4: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 5: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 6: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 7: (struct (field anyref (mut f32))) +;; CHECK-NEXT: 8: (struct (field anyref (mut f32) f64 i8 v128 (mut i8))) +;; CHECK-NEXT: 9: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 10: (struct (field anyref (mut f32) (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq))))) (ref (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq))))))))) (rtt 1 (struct (field anyref (mut f32) (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)) i16))) (ref (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq))))))))) ...1))))) +;; CHECK-NEXT: 11: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 12: (struct (field anyref (mut f32) (mut (rtt 2 eq)))) +;; CHECK-NEXT: 13: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 14: (struct (field anyref (mut f32) (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)) i16))) (ref (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq))))))))) (rtt 1 ...1))) +;; CHECK-NEXT: 15: (func (result i64)) +;; CHECK-NEXT: 16: (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)))))))) +;; CHECK-NEXT: 17: (struct (field anyref (mut f32) (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq)) i16))) (ref (struct (field (rtt 0 ...1) (ref (func (result i64))) (mut (ref null (struct (field anyref (mut f32))))) (mut i8) i64 (mut (ref null (struct (field anyref (mut f32) (mut (rtt 2 eq))))))))) (rtt 1 ...1))) +;; CHECK-NEXT: 18: (struct (field anyref (mut f32) (mut (rtt 2 eq)) i16)) +;; CHECK-NEXT: 19: (func (result i64)) + +;; CHECK: Running with seed 0 +;; CHECK-NEXT: Built 20 types: +;; CHECK-NEXT: 0: (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 ...5))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 ...9))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 1: (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref ...7)) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref ...9)) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))))))))))))))) +;; CHECK-NEXT: 2: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 ...9) (mut (ref ...3))))) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))))))))) +;; CHECK-NEXT: 3: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 ...9) (mut (ref ...3))))) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))))))))) +;; CHECK-NEXT: 4: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 ...9) (mut (ref ...3))))) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))))))))) +;; CHECK-NEXT: 5: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 ...9) (mut (ref ...3))))) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))))))))) +;; CHECK-NEXT: 6: (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null ...7) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...9) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 ...9))))))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null ...9) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...7) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 ...7)))))))))))))) +;; CHECK-NEXT: 7: (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 ...5))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 ...9))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 8: (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 ...5))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 ...9))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 9: (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null ...7) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...9) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 ...9))))))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null ...9) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...7) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 ...7)))))))))))))) +;; CHECK-NEXT: 10: (struct (field (ref (struct (field (mut (ref func)) (mut (ref ...3)) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref ...9)))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...5))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))) (ref (struct (field (mut (ref func)) (mut (ref ...3))))) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut (ref ...7)) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...9))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut (ref ...3)))))) (rtt 2 (struct (field (mut (ref func)) (mut (ref ...3)) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref ...9)))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...5))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 11: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 ...9) (mut (ref ...3))))) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref ...9)))))))) (rtt 1 ...5) (mut (ref (struct (field (ref null ...3) (ref ...7)))))))))))))) +;; CHECK-NEXT: 12: (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 ...5))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 ...9))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 13: (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null ...7) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...9) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 ...9))))))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null ...9) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...7) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 ...7)))))))))))))) +;; CHECK-NEXT: 14: (struct (field (ref (struct (field (mut (ref func)) (mut (ref ...3)) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref ...9)))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...5))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))) (ref (struct (field (mut (ref func)) (mut (ref ...3))))) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut (ref ...7)) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...9))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut (ref ...3)))))) (rtt 2 (struct (field (mut (ref func)) (mut (ref ...3)) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref ...9)))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref ...5))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 15: (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref ...7)) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref ...9)) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))))))))))))))) +;; CHECK-NEXT: 16: (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut ...9))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut ...5)))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut ...7) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut ...9)))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut ...9))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut ...5)))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut ...7))))))))))))))) (mut (ref (struct (field (mut (ref func)) (mut (ref (struct (field ...3 (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null ...7) ..!))))))) (mut ..!) ..!)))) i64 (mut ..!) ..! (mut ..!))))))) +;; CHECK-NEXT: 17: (struct (field (ref (struct (field (mut (ref func)) (mut (ref (struct (field ...3 (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 (struct (field (ref null ...7) (ref (struct (field (mut (ref func)) (mut ...7))))))))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) (ref (struct (field (mut (ref func)) (mut (ref (struct (field ...9 ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 ...9))))))))))))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field ...5 (ref ...3) (mut (ref (func (param (rtt 0 (struct (field (ref null ...9) (ref ...7)))))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref (struct (field (ref null ...3) (ref (struct (field (mut (ref func)) (mut (ref (struct (field ...7 ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 ...7))))))))))))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 (struct (field (ref null ...5) ..!))))))) ..! (mut ..!)))) ..! (mut ..!) (mut ..!) ..!))))))) (mut ..!) (mut ..!) ..! ..!)) +;; CHECK-NEXT: 18: (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt (func (param (rtt 0 ...5))))) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref (func (param (rtt 0 ...9))))) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref (func (param (rtt 0 ...7))))) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt (func (param (rtt 0 ...9))))) (rtt 1 ...5) (mut (ref ...7)))))))))))))) +;; CHECK-NEXT: 19: (func (param (rtt 0 (struct (field (ref null (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...3) (ref (struct (field (mut (ref func)) (mut ...3)))) (mut (ref ...7)) (mut (rtt 2 (struct (field (mut (ref func)) (mut ...3))))) (rtt 2 ...3))))) i64 (mut (rtt ...5)) (rtt 1 (struct (field (mut (ref func)) (mut (ref (struct (field (ref ...5) (ref ...3) (mut (ref ...9)) (mut (rtt 2 ...3)) (rtt 2 ...5)))))))) (mut (ref ...3))))) (ref (struct (field (mut (ref func)) (mut (ref (struct (field (ref (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))) ...3 (mut (ref ...7)) (mut (rtt 2 ...3)) (rtt 2 (struct (field (mut (ref func)) (mut ...3) i64 (mut (rtt ...9)) (rtt 1 ...5) (mut (ref ...7))))))))))))))))) |