diff --git a/src/references.zig b/src/references.zig index fea8654..3d1fa8a 100644 --- a/src/references.zig +++ b/src/references.zig @@ -202,6 +202,7 @@ fn symbolReferencesInternal( const loop = ast.whileAst(tree, node).?; try symbolReferencesInternal(builder, loop.ast.cond_expr, handle, false); try symbolReferencesInternal(builder, loop.ast.then_expr, handle, false); + try symbolReferencesInternal(builder, loop.ast.cont_expr, handle, false); try symbolReferencesInternal(builder, loop.ast.else_expr, handle, false); }, .@"if", diff --git a/tests/lsp_features/references.zig b/tests/lsp_features/references.zig index 671f448..f479c45 100644 --- a/tests/lsp_features/references.zig +++ b/tests/lsp_features/references.zig @@ -74,6 +74,15 @@ test "references - local scope" { ); } +test "references - while continue expression" { + try testReferences( + \\ pub fn foo() void { + \\ var <0>: u32 = 0; + \\ while (true) : (<0> += 1) {} + \\ } + ); +} + test "references - label" { if (skip_references_tests) return error.SkipZigTest; try testReferences(