diff options
Diffstat (limited to 'src/analyze.cpp')
| -rw-r--r-- | src/analyze.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp index 7af8632b96..bf6bcee289 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -5038,7 +5038,12 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast decl_node->name = name; decl_node->import = import; if (decl_node->deps.size() > 0) { - g->unresolved_top_level_decls.put(name, node); + if (g->unresolved_top_level_decls.maybe_get(name)) { + node->data.fn_proto.skip = true; + add_node_error(g, node, buf_sprintf("redefinition of '%s'", buf_ptr(name))); + } else { + g->unresolved_top_level_decls.put(name, node); + } } else { resolve_top_level_decl(g, import, node); } |
