workaround for nim/macro/typedesc issue

This commit is contained in:
Fabian Keller 2018-12-30 15:41:44 +01:00
commit a536c102d6

View file

@ -343,23 +343,20 @@ proc newRStrLit(s: string): NimNode {.compileTime.} =
result = newNimNode(nnkRStrLit) result = newNimNode(nnkRStrLit)
result.strVal = s result.strVal = s
macro toGodotName(T: typedesc): string = proc toGodotName(T: typedesc): string =
var godotName = if T is GodotString or T is string:
if T is GodotString or T is string: "String"
"String" elif T is SomeFloat:
elif T is SomeFloat: "float"
"float" elif T is SomeUnsignedInt or T is SomeSignedInt:
elif T is SomeUnsignedInt or T is SomeSignedInt: "int"
"int" else:
else: let nameStr = (($T.getType()[1][1].symbol).split(':')[0])
let nameStr = (($T.getType()[1][1].symbol).split(':')[0]) case nameStr:
case nameStr: of "File", "Directory", "Thread", "Mutex", "Semaphore":
of "File", "Directory", "Thread", "Mutex", "Semaphore": "_" & nameStr
"_" & nameStr else:
else: nameStr
nameStr
result = newLit(godotName)
macro asCString(s: static[string]): cstring = macro asCString(s: static[string]): cstring =
result = newNimNode(nnkCallStrLit).add( result = newNimNode(nnkCallStrLit).add(