Size ptr tuple (#10846)
* fixes #10117 * Add support for recursive tuples * detect in generics
This commit is contained in:
parent
5661a8303c
commit
97c3b113a5
8 changed files with 153 additions and 10 deletions
38
tests/types/tillegaltuplerecursion.nim
Normal file
38
tests/types/tillegaltuplerecursion.nim
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
discard """
|
||||
errormsg: "illegal recursion in type"
|
||||
"""
|
||||
|
||||
# This is one big illegal type cycle. It doesn't really matter at
|
||||
# what line the error is reported, nor what name is picked to point
|
||||
# out the illegal recursion.
|
||||
|
||||
type
|
||||
MyType0 = ref tuple
|
||||
children: MyType1
|
||||
|
||||
MyType1 = ref tuple
|
||||
children: array[10, MyType2]
|
||||
|
||||
MyType2 = ref tuple
|
||||
children: seq[MyType3]
|
||||
|
||||
MyType3 = ref tuple
|
||||
children: UncheckedArray[MyType4]
|
||||
|
||||
MyType4 = ref tuple
|
||||
children: MyType5
|
||||
|
||||
MyType5 = tuple
|
||||
children: array[10, MyType6]
|
||||
|
||||
MyType6 = tuple
|
||||
children: seq[MyType7]
|
||||
|
||||
MyType7 = tuple
|
||||
children: UncheckedArray[MyType8]
|
||||
|
||||
MyType8 = tuple
|
||||
children: ptr MyType9
|
||||
|
||||
MyType9 = tuple
|
||||
children: MyType0
|
||||
7
tests/types/tillegaltuplerecursiongeneric.nim
Normal file
7
tests/types/tillegaltuplerecursiongeneric.nim
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
discard """
|
||||
errormsg: "illegal recursion in type 'RefTreeInt'"
|
||||
"""
|
||||
|
||||
type
|
||||
RefTree[T] = ref tuple[le, ri: RefTree[T]; data: T]
|
||||
RefTreeInt = RefTree[int]
|
||||
Loading…
Add table
Add a link
Reference in a new issue