From 333b15cfe065826b0435a1192bec5feb734ff045 Mon Sep 17 00:00:00 2001 From: Username404-59 Date: Tue, 8 Apr 2025 14:22:28 +0200 Subject: [PATCH] GodotScript.hpp: Fix GodotScript variables Signed-off-by: Username404-59 --- src/headers/transpiler/implementations/GodotScript.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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);),