Fix ambiguous calls when creating Variant from ints

This commit is contained in:
Ruslan Mustakov 2017-07-28 18:26:36 +07:00
commit 7d91c2b5cb

View file

@ -36,13 +36,23 @@ proc newVariant*(b: bool): Variant {.inline.} =
new(result, variantFinalizer) new(result, variantFinalizer)
initGodotVariant(result.godotVariant[], b) initGodotVariant(result.godotVariant[], b)
proc newVariant*(i: uint64): Variant {.inline.} = # resolves Nim call ambiguities well
new(result, variantFinalizer) template numConstructor(T, ConvT) =
initGodotVariant(result.godotVariant[], i) proc newVariant*(i: T): Variant {.inline.} =
new(result, variantFinalizer)
initGodotVariant(result.godotVariant[], ConvT(i))
proc newVariant*(i: int64): Variant {.inline.} = numConstructor(uint8, uint64)
new(result, variantFinalizer) numConstructor(uint16, uint64)
initGodotVariant(result.godotVariant[], i) numConstructor(uint32, uint64)
numConstructor(uint64, uint64)
numConstructor(uint, uint64)
numConstructor(int8, int64)
numConstructor(int16, int64)
numConstructor(int32, int64)
numConstructor(int64, int64)
numConstructor(int, int64)
proc newVariant*(r: cdouble): Variant {.inline.} = proc newVariant*(r: cdouble): Variant {.inline.} =
new(result, variantFinalizer) new(result, variantFinalizer)