Skip to content

Commit 1163a93

Browse files
committed
Handle default keyword of default export
1 parent e1e1603 commit 1163a93

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

src/services/findAllReferences.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,12 @@ namespace ts.FindAllReferences {
7979
// Property name of the import export specifier or binding pattern, use parent
8080
((isImportOrExportSpecifier(node.parent) || isBindingElement(node.parent))
8181
&& node.parent.propertyName === node) ||
82-
isExportAssignment(node.parent) && node.parent.expression === node) {
82+
isExportAssignment(node.parent) && (
83+
node.parent.expression === node ||
84+
(!node.parent.isExportEquals && node.kind === SyntaxKind.DefaultKeyword)
85+
) ||
86+
// Is default export
87+
(node.kind === SyntaxKind.DefaultKeyword && hasModifier(node.parent, ModifierFlags.ExportDefault))) {
8388
return getDeclarationForDeclarationSpan(node.parent);
8489
}
8590

tests/cases/fourslash/findAllRefsForDefaultExport04.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
/// <reference path='fourslash.ts' />
22

33
// @Filename: /a.ts
4-
////const [|{| "isWriteAccess": true, "isDefinition": true |}a|] = 0;
5-
////export [|{| "isWriteAccess": true, "isDefinition": true |}default|] [|a|];
4+
////[|const [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}a|] = 0;|]
5+
////[|export [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}default|] [|{| "declarationRangeIndex": 2 |}a|];|]
66

77
// @Filename: /b.ts
8-
////import [|{| "isWriteAccess": true, "isDefinition": true |}a|] from "./a";
8+
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 5 |}a|] from "./a";|]
99
////[|a|];
1010

11-
const [r0, r1, r2, r3, r4] = test.ranges();
11+
const [r0Def, r0, r1Def, r1, r2, r3Def, r3, r4] = test.ranges();
1212
verify.referenceGroups([r0, r2], [
1313
{ definition: "const a: 0", ranges: [r0, r2] },
1414
{ definition: "(alias) const a: 0\nimport a", ranges: [r3, r4] }

tests/cases/fourslash/findAllRefsForDefaultExportAnonymous.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/// <reference path='fourslash.ts' />
22

33
// @Filename: /a.ts
4-
////export [|{| "isWriteAccess": true, "isDefinition": true |}default|] function() {}
4+
////[|export [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}default|] function() {}|]
55

66
// @Filename: /b.ts
7-
////import [|{| "isWriteAccess": true, "isDefinition": true |}f|] from "./a";
7+
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}f|] from "./a";|]
88

9-
const [r0, r1] = test.ranges();
9+
const [r0Def, r0, r1Def, r1] = test.ranges();
1010
verify.referenceGroups(r0, [
1111
{ definition: "function default(): void", ranges: [r0] },
1212
{ definition: "import f", ranges: [r1] },

tests/cases/fourslash/findAllRefsForDefaultExport_anonymous.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/// <reference path='fourslash.ts' />
22

33
// @Filename: /a.ts
4-
////export [|{| "isDefinition": true, "isWriteAccess": true |}default|] 1;
4+
////[|export [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 0 |}default|] 1;|]
55

66
// @Filename: /b.ts
7-
////import [|{| "isDefinition": true, "isWriteAccess": true |}a|] from "./a";
7+
////[|import [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 2 |}a|] from "./a";|]
88

9-
const [r0, r1] = test.ranges();
9+
const [r0Def, r0, r1Def, r1] = test.ranges();
1010
verify.referenceGroups(r0, [
1111
{ definition: "(property) default: 1", ranges: [r0] },
1212
{ definition: "import a", ranges: [r1] },

0 commit comments

Comments
 (0)