diff --git a/src/headers/transpiler/implementations/GodotScript.hpp b/src/headers/transpiler/implementations/GodotScript.hpp index 842aeff..deb432c 100644 --- a/src/headers/transpiler/implementations/GodotScript.hpp +++ b/src/headers/transpiler/implementations/GodotScript.hpp @@ -7,7 +7,11 @@ struct GsTarget: Target { unordered_task_map getTaskMap() final { return { make_task(Define, - output << (parseComponent.final ? "const " : "var ") << parseComponent.name << " = "; // TODO Handle redefining GodotScript variables + const optional previous = parsedTree.findReferenceByName>(parseComponent.name); + if (previous.has_value() and &previous.value().get() == &parseComponent) { // TODO Recursively traverse the parsedTree's parents and their parents to find existing definitions and do it in semantic analysis + output << (parseComponent.final ? "const " : "var "); + } + output << parseComponent.name << " = "; transpileTree(parseComponent.content); ), make_task(types::String, stringInterpolation(R"(""")", parseComponent.content);),