Commit 2c8864f634

LemonBoy <thatlemon@gmail.com>
2019-09-26 17:54:45
Don't warn about redeclaration for the same var node
Closes #3316
1 parent b89a09a
Changed files (2)
src
test
stage1
src/analyze.cpp
@@ -3676,7 +3676,7 @@ ZigVar *add_variable(CodeGen *g, AstNode *source_node, Scope *parent_scope, Buf
                 }
                 if (search_scope != nullptr) {
                     Tld *tld = find_decl(g, search_scope, name);
-                    if (tld != nullptr) {
+                    if (tld != nullptr && tld != src_tld) {
                         ErrorMsg *msg = add_node_error(g, source_node,
                                 buf_sprintf("redefinition of '%s'", buf_ptr(name)));
                         add_error_note(g, msg, tld->source_node, buf_sprintf("previous definition is here"));
test/stage1/behavior/usingnamespace.zig
@@ -12,3 +12,11 @@ test "usingnamespace inside a generic struct" {
     std2.testing.expect(true);
     testing2.expect(true);
 }
+
+usingnamespace struct {
+    pub const foo = 42;
+};
+
+test "usingnamespace does not redeclare an imported variable" {
+    comptime std.testing.expect(foo == 42);
+}