1discard """ 2 action: reject 3 nimout: ''' 4t9039.nim(22, 22) Error: type mismatch: got <array[0..2, int], int, array[0..1, int]> 5but expression 'nesting + 1' is of type: int 6''' 7""" 8 9# bug #9039; this used to hang in 0.19.0 10 11 12 13 14 15# line 15 16func default(T: typedesc[array]): T = discard 17doAssert default(array[3, int]) == [0, 0, 0] 18func shapeBad*[T: not char](s: openarray[T], rank: static[int], nesting = 0, parent_shape = default(array[rank, int])): array[rank, int] = 19 result = parent_shape 20 result[nesting] = s.len 21 when (T is seq|array): 22 result = shapeBad(s[0], nesting + 1, result) 23let a1 = [1, 2, 3].shapeBad(rank = 1) 24let a2 = [[1, 2, 3], [4, 5, 6]].shapeBad(rank = 2) 25