Grid[W, H: static Positive] = array[H, array[W, ParticleType]]
var grid: Grid[10, 10]
func clear[W, H: static Positive](grid: var Grid[W, H]) =
grid = Grid[W, H].default
echo "type of grid is ", typeOf grid # type of grid is Grid[10, 10]
echo "type of grid.H is ", typeOf grid.H # type of grid.H is int
echo "type of grid.W is ", typeOf grid.W # type of grid.W is int
grid.clear()
этот код не компилируется. Ошибка:
main.nim(15, 5) Error: type mismatch
Expression: clear(grid)
[1] grid: Grid[10, 10]
Expected one of (first mismatch at [position]):
[1] func clear[W, H: static Positive](grid: var Grid[W, H])
Но если в функции clear заменить тип W и H со static Positive на static int, то всё работает. Почему? Positive это же тот же самый int, просто ограниченый
https://github.com/nim-lang/Nim/pull/24038 включает в себя исправление этого бага, или нужно ишуе открывать?
https://github.com/nim-lang/Nim/issues/23343
Обсуждают сегодня