Skip to content

Commit d584f4d

Browse files
author
Andy
authored
Fix assertion: class reference location may be 'default' keyword instead of class name (microsoft#21630)
* Fix assertion: class reference location may be 'default' keyword instead of class name * Update API baselines
1 parent d11c7ae commit d584f4d

File tree

5 files changed

+9
-1
lines changed

5 files changed

+9
-1
lines changed

src/compiler/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2027,6 +2027,7 @@ namespace ts {
20272027

20282028
export interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement {
20292029
kind: SyntaxKind.ClassDeclaration;
2030+
/** May be undefined in `export default class { ... }`. */
20302031
name?: Identifier;
20312032
}
20322033

src/services/findAllReferences.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -990,7 +990,7 @@ namespace ts.FindAllReferences.Core {
990990
const pusher = () => state.referenceAdder(search.symbol, search.location);
991991

992992
if (isClassLike(referenceLocation.parent)) {
993-
Debug.assert(referenceLocation.parent.name === referenceLocation);
993+
Debug.assert(referenceLocation.kind === SyntaxKind.DefaultKeyword || referenceLocation.parent.name === referenceLocation);
994994
// This is the class declaration containing the constructor.
995995
findOwnConstructorReferences(search.symbol, sourceFile, pusher());
996996
}

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,6 +1266,7 @@ declare namespace ts {
12661266
}
12671267
interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement {
12681268
kind: SyntaxKind.ClassDeclaration;
1269+
/** May be undefined in `export default class { ... }`. */
12691270
name?: Identifier;
12701271
}
12711272
interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression {

tests/baselines/reference/api/typescript.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,6 +1266,7 @@ declare namespace ts {
12661266
}
12671267
interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement {
12681268
kind: SyntaxKind.ClassDeclaration;
1269+
/** May be undefined in `export default class { ... }`. */
12691270
name?: Identifier;
12701271
}
12711272
interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
////export default class {
2+
//// [|constructor|]() {}
3+
////}
4+
5+
verify.singleReferenceGroup("constructor default(): default");

0 commit comments

Comments
 (0)