diff --git a/src/analysis.cpp b/src/analysis.cpp index abb3f80..bee7c32 100644 --- a/src/analysis.cpp +++ b/src/analysis.cpp @@ -277,6 +277,13 @@ AnalysisResult analyze(Node &ast, Memory &memory) { throw RuntimeError(ErrorType::NestedFunction, token.pos, {}); } catch (const InternalError& _) {} + if (memory.contains(function_name)) { + // Il existe une variable non fonction à ce nom + if (memory.get(function_name).type.type != TypeType::Function) { + throw RuntimeError(ErrorType::IncompatibleRedefinition, token.pos, function_name); + } + } + memory.declare(function_name, { .type = TypeType::Function, .data = make_fn_prototype(node)