diff options
Diffstat (limited to 'tests/generics')
-rw-r--r-- | tests/generics/tableref_is_nil.nim | 9 | ||||
-rw-r--r-- | tests/generics/tarray_with_somenumber.nim | 11 | ||||
-rw-r--r-- | tests/generics/tunique_type.nim | 8 |
3 files changed, 24 insertions, 4 deletions
diff --git a/tests/generics/tableref_is_nil.nim b/tests/generics/tableref_is_nil.nim new file mode 100644 index 000000000..1ad4b3b0c --- /dev/null +++ b/tests/generics/tableref_is_nil.nim @@ -0,0 +1,9 @@ +discard """ + output: "true" +""" + +# bug #2221 +import tables + +var tblo: TableRef[string, int] +echo tblo == nil diff --git a/tests/generics/tarray_with_somenumber.nim b/tests/generics/tarray_with_somenumber.nim new file mode 100644 index 000000000..0bf2537a1 --- /dev/null +++ b/tests/generics/tarray_with_somenumber.nim @@ -0,0 +1,11 @@ +discard """ + output: '''@[0.9, 0.1]''' +""" + +# bug #2304 + +type TV2*[T:SomeNumber] = array[0..1, T] +proc newV2T*[T](x, y: T=0): TV2[T] = [x, y] + +let x = newV2T[float](0.9, 0.1) +echo(@x) diff --git a/tests/generics/tunique_type.nim b/tests/generics/tunique_type.nim index 29367181c..da2f9e4b2 100644 --- a/tests/generics/tunique_type.nim +++ b/tests/generics/tunique_type.nim @@ -20,14 +20,14 @@ import strutils # This serves the same purpose as D's `alias` parameters for types, used heavily # in its popular `ranges` and `algorithm` modules. -var exprNodes {.compileTime.} = newSeq[PNimrodNode]() +var exprNodes {.compileTime.} = newSeq[NimNode]() -proc refExpr(exprNode: PNimrodNode): string {.compileTime.} = +proc refExpr(exprNode: NimNode): string {.compileTime.} = exprNodes.add exprNode.copy "expr" & $(exprNodes.len - 1) -proc derefExpr(exprRef: string): PNimrodNode {.compileTime.} = - exprNodes[parseInt(exprRef[4 .. -1])] +proc derefExpr(exprRef: string): NimNode {.compileTime.} = + exprNodes[parseInt(exprRef[4 .. ^1])] #=============================================================================== # Define a type that allows a callable expression to be mapped onto elements |