From 651c2d823c44e57d12b295291e6f7dd3e25cd77e Mon Sep 17 00:00:00 2001 From: Ruslan Mustakov Date: Mon, 4 Jun 2018 09:24:54 +0700 Subject: [PATCH] Handle nil object references properly Fixes #26. --- godot/godotapigen.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/godot/godotapigen.nim b/godot/godotapigen.nim index 7d19d8e..32275b4 100644 --- a/godot/godotapigen.nim +++ b/godot/godotapigen.nim @@ -468,9 +468,12 @@ proc doGenerateMethod(tree: PNode, methodBindRegistry: var HashSet[string], newIdentDefs(ident("argToPassToGodot" & $idx), newEmptyNode(), newCall("toGodotString", argName)))) else: + let objVal = newIfStmt( + prefix("not", newDotExpr(argName, ident"isNil")), + newDotExpr(argName, ident("godotObject")) + ).addChain(newNode(nkElse).addChain(newNilLit())) argConversions.add(newNode(nkLetSection).addChain( - newIdentDefs(ident("argToPassToGodot" & $idx), newEmptyNode(), - newDotExpr(argName, ident("godotObject"))))) + newIdentDefs(ident("argToPassToGodot" & $idx), newEmptyNode(), objVal))) let argAsgn = newNode(nkAsgn).addChain( newNode(nkBracketExpr).addChain( newNode(nkBracketExpr).addChain(argsName), argIdx),