Skip to content

Commit 4c53dca

Browse files
committed
stdlib: Use type inference for enumeration
1 parent defcba3 commit 4c53dca

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

xls/dslx/stdlib/std.x

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,38 @@
1717
#![feature(generics)]
1818

1919
pub fn enumerate<T: type, N: u32>(x: T[N]) -> (u32, T)[N] {
20-
for (i, result): (u32, (u32, T)[N]) in u32:0..N {
20+
for (i, result) in 0..N {
2121
update(result, i, (i, x[i]))
22-
}(((u32, T)[N]:[(u32:0, zero!<T>()), ...]))
22+
}([(u32:0, zero!<T>()), ...])
2323
}
2424

2525
#[test]
2626
fn emumerate_test() {
27-
let array = u8[4]:[1, 2, 4, 8];
27+
let array = [1, 2, 4, 8];
2828
let enumerated = enumerate(array);
29-
assert_eq(enumerated[u32:0], (u32:0, u8:1));
30-
assert_eq(enumerated[u32:1], (u32:1, u8:2));
31-
assert_eq(enumerated[u32:2], (u32:2, u8:4));
32-
assert_eq(enumerated[u32:3], (u32:3, u8:8));
29+
assert_eq(enumerated[0], (0, 1));
30+
assert_eq(enumerated[1], (1, 2));
31+
assert_eq(enumerated[2], (2, 4));
32+
assert_eq(enumerated[3], (3, 8));
3333
}
3434

3535
#[test]
3636
fn enumerate_type_test() {
3737
type RamData = uN[8];
38-
const DATA = RamData[4]:[RamData:1, RamData:2, RamData:4, RamData:8];
38+
const DATA = [RamData:1, 2, 4, 8];
3939
let enumerated = enumerate(DATA);
40-
assert_eq(enumerated[u32:0], (u32:0, u8:1));
41-
assert_eq(enumerated[u32:1], (u32:1, u8:2));
42-
assert_eq(enumerated[u32:2], (u32:2, u8:4));
43-
assert_eq(enumerated[u32:3], (u32:3, u8:8));
40+
assert_eq(enumerated[0], (0, 1));
41+
assert_eq(enumerated[1], (1, 2));
42+
assert_eq(enumerated[2], (2, 4));
43+
assert_eq(enumerated[3], (3, 8));
4444
}
4545

4646
#[test]
4747
fn enumerate_tuple_test() {
48-
let x = [(true, u2:3), (false, u2:2)];
48+
let x = [(true, 3), (false, 2)];
4949
let enumerated = enumerate(x);
50-
assert_eq(enumerated[u32:0], (u32:0, (true, u2:3)));
51-
assert_eq(enumerated[u32:1], (u32:1, (false, u2:2)));
50+
assert_eq(enumerated[0], (0, (true, 3)));
51+
assert_eq(enumerated[1], (1, (false, 2)));
5252
}
5353

5454
pub fn sizeof<S: bool, N: u32>(x: xN[S][N]) -> u32 { N }

0 commit comments

Comments
 (0)