Skip to content

Commit 8e4235e

Browse files
committed
another testcase passing
1 parent 6c94bf2 commit 8e4235e

File tree

5 files changed

+20
-4
lines changed

5 files changed

+20
-4
lines changed

crates/core/src/abi.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1794,7 +1794,11 @@ impl<'a, B: Bindgen> Generator<'a, B> {
17941794
self.write_to_memory(element, elem_addr, Default::default());
17951795
self.finish_block(0);
17961796
self.stack.push(addr);
1797-
self.emit(&FixedSizeListLowerBlock { element, size: *size, id });
1797+
self.emit(&FixedSizeListLowerBlock {
1798+
element,
1799+
size: *size,
1800+
id,
1801+
});
17981802
}
17991803
},
18001804
}

crates/rust/src/bindgen.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,11 @@ impl Bindgen for FunctionBindgen<'_, '_> {
797797
results.push(len);
798798
}
799799

800-
Instruction::FixedSizeListLowerBlock { element, size: _, id: _ } => {
800+
Instruction::FixedSizeListLowerBlock {
801+
element,
802+
size: _,
803+
id: _,
804+
} => {
801805
let body = self.blocks.pop().unwrap();
802806
let vec = operands[0].clone();
803807
let target = operands[1].clone();

tests/runtime/fixed-size-list/runner.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ use test::fixed_size_lists::to_test::*;
55
fn main() {
66
list_param([1, 2, 3, 4]);
77
list_param2([[1, 2], [3, 4]]);
8+
list_param3([
9+
-1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, 12, -13, 14, -15, 16, -17, 18, -19, 20,
10+
]);
811
{
912
let result = list_result();
1013
assert_eq!(result, [b'0', b'1', b'A', b'B', b'a', b'b', 128, 255]);

tests/runtime/fixed-size-list/test.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ impl exports::test::fixed_size_lists::to_test::Guest for Component {
1111
fn list_param2(a: [[u32; 2]; 2]) {
1212
assert_eq!(a, [[1, 2], [3, 4]]);
1313
}
14-
// fn list_param3(_a: [i32; 20]) {}
14+
fn list_param3(a: [i32; 20]) {
15+
assert_eq!(
16+
a,
17+
[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, 12, -13, 14, -15, 16, -17, 18, -19, 20]
18+
);
19+
}
1520
fn list_result() -> [u8; 8] {
1621
[b'0', b'1', b'A', b'B', b'a', b'b', 128, 255]
1722
}

tests/runtime/fixed-size-list/test.wit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package test:fixed-size-lists;
55
interface to-test {
66
list-param: func(a: list<u32, 4>);
77
list-param2: func(a: list<list<u32, 2>, 2>);
8-
// list-param3: func(a: list<s32, 20>);s
8+
list-param3: func(a: list<s32, 20>);
99
list-result: func() -> list<u8, 8>;
1010

1111
// list-minmax16: func(a: list<u16, 4>, b: list<s16, 4>) -> tuple<list<u16, 4>, list<s16, 4>>;

0 commit comments

Comments
 (0)