Fix corner-case uses of newLit (#10760)

This commit is contained in:
zah
2019-03-01 12:09:13 +02:00
committed by Andreas Rumpf
parent 7d7cd69070
commit e9d3c5de19

View File

@@ -703,6 +703,17 @@ when compiles(float128):
result = newNimNode(nnkFloat128Lit)
result.floatVal = f
proc newLit*(arg: enum): NimNode {.compileTime.} =
result = newCall(
arg.type.getTypeInst[1],
newLit(int(arg))
)
proc newLit*[N,T](arg: array[N,T]): NimNode {.compileTime.}
proc newLit*[T](arg: seq[T]): NimNode {.compileTime.}
proc newLit*[T](s: set[T]): NimNode {.compileTime.}
proc newLit*(arg: tuple): NimNode {.compileTime.}
proc newLit*(arg: object): NimNode {.compileTime.} =
result = nnkObjConstr.newTree(arg.type.getTypeInst[1])
for a, b in arg.fieldPairs:
@@ -725,11 +736,6 @@ proc newLit*[T](arg: seq[T]): NimNode {.compileTime.} =
),
bracket
)
proc newLit*(arg: enum): NimNode {.compileTime.} =
result = newCall(
arg.type.getTypeInst[1],
newLit(int(arg))
)
proc newLit*[T](s: set[T]): NimNode {.compileTime.} =
result = nnkCurly.newTree