Commit c17793b487
src/Sema.zig
@@ -5384,6 +5384,17 @@ fn lookupInNamespace(
}
}
+ {
+ var i: usize = 0;
+ while (i < candidates.items.len) {
+ if (candidates.items[i] == sema.owner_decl_index) {
+ _ = candidates.orderedRemove(i);
+ } else {
+ i += 1;
+ }
+ }
+ }
+
switch (candidates.items.len) {
0 => {},
1 => {
test/behavior/basic.zig
@@ -1104,3 +1104,24 @@ test "namespace lookup ignores decl causing the lookup" {
};
_ = S.foo();
}
+
+test "ambiguous reference error ignores current declaration" {
+ const S = struct {
+ const foo = 666;
+
+ const a = @This();
+ const b = struct {
+ const foo = a.foo;
+ const bar = struct {
+ bar: u32 = b.foo,
+ };
+
+ comptime {
+ _ = b.foo;
+ }
+ };
+
+ usingnamespace b;
+ };
+ try expect(S.b.foo == 666);
+}