Skip to content

Commit 9795c2b

Browse files
Copilotjakebailey
andcommitted
Add empty declarations check matching TypeScript semantics
Co-authored-by: jakebailey <5341706+jakebailey@users.noreply.github.com>
1 parent 5746f95 commit 9795c2b

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

internal/ls/findallreferences.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,12 @@ func (l *LanguageService) ProvideSymbolsAndEntries(ctx context.Context, uri lspr
592592
symbol := checker.GetSymbolAtLocation(core.IfElse(node.Kind == ast.KindConstructor && node.Parent.Name() != nil, node.Parent.Name(), node))
593593
done()
594594
if symbol != nil {
595+
// Only allow a symbol to be renamed if it actually has at least one declaration.
595596
declarations := symbol.Declarations
597+
if len(declarations) == 0 {
598+
return node, nil, false
599+
}
600+
596601
// Disallow rename for elements that are defined in the standard TypeScript library.
597602
if core.Some(declarations, func(declaration *ast.Node) bool {
598603
return isDefinedInLibraryFile(program, declaration)

testdata/baselines/reference/submodule/fourslash/findRenameLocations/jsdocTypedefTagRename01.baseline.jsonc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@
2929
//
3030
// NumberLike = 10;
3131
//
32-
// /** @type {/*RENAME*/[|NumberLikeRENAME|]} */
32+
// /** @type {/*RENAME*/NumberLike} */
3333
// var numberLike;

testdata/baselines/reference/submodule/fourslash/findRenameLocations/jsdocTypedefTagRename01.baseline.jsonc.diff

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,13 @@
3737
-//
3838
// /** @typedef {(string | number)} */
3939
-// var [|NumberLikeRENAME|];
40-
+// var NumberLike;
41-
//
40+
-//
4241
-// [|NumberLikeRENAME|] = 10;
42+
-//
43+
-// /** @type {/*RENAME*/[|NumberLikeRENAME|]} */
44+
+// var NumberLike;
45+
+//
4346
+// NumberLike = 10;
44-
//
45-
// /** @type {/*RENAME*/[|NumberLikeRENAME|]} */
47+
+//
48+
+// /** @type {/*RENAME*/NumberLike} */
4649
// var numberLike;

0 commit comments

Comments
 (0)