vxx2 / vlib / v / checker / tests / struct_iter_generic_invalid_infer_err.vv
28 lines · 24 sloc · 358 bytes · a22a3f776069f58dd8136239c73b3d9d4b345c68
Raw
1module main
2
3struct SquareIterator {
4 arr []int
5mut:
6 idx int
7}
8
9fn (mut iter SquareIterator) next[K]() ?K {
10 if iter.idx >= iter.arr.len {
11 return none
12 }
13 defer {
14 iter.idx++
15 }
16 return iter.arr[iter.idx] * iter.arr[iter.idx]
17}
18
19fn main() {
20 nums := [1, 2, 3, 4, 5]
21 iter := SquareIterator{
22 arr: nums
23 }
24
25 for squared in iter {
26 println(squared)
27 }
28}
29