Skip to content

Commit ccac3f9

Browse files
authored
fix: panic on nil point on name check (#63967)
1 parent 754fdc0 commit ccac3f9

9 files changed

Lines changed: 78 additions & 0 deletions

tsc/internal/parser/reparser.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ func (p *Parser) addTransformedReparse(newNode *ast.Node, old *ast.Node) *ast.No
3939
}
4040

4141
func (p *Parser) checkNonIdentifierName(name *ast.Node) *ast.Node {
42+
// Handles the case of anonymous functions
43+
if name == nil {
44+
return nil
45+
}
4246
if ast.IsIdentifier(name) && !scanner.IsValidIdentifier(name.AsIdentifier().Text) {
4347
errLoc := name.Loc
4448
if errLoc.Len() == 0 { // missing name, emit error on the character before the missing name node
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [tests/cases/compiler/jsDocOverloadAnonDefaultExport.ts] ////
2+
3+
//// [jsDocOverloadAnonDefaultExport.js]
4+
/** @overload */
5+
export default function () {}
6+
7+
8+
//// [jsDocOverloadAnonDefaultExport.js]
9+
/** @overload */
10+
export default function () { }
11+
12+
13+
//// [jsDocOverloadAnonDefaultExport.d.ts]
14+
/** @overload */
15+
export default function (): any;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//// [tests/cases/compiler/jsDocOverloadAnonDefaultExport.ts] ////
2+
3+
=== jsDocOverloadAnonDefaultExport.js ===
4+
5+
/** @overload */
6+
export default function () {}
7+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//// [tests/cases/compiler/jsDocOverloadAnonDefaultExport.ts] ////
2+
3+
=== jsDocOverloadAnonDefaultExport.js ===
4+
5+
/** @overload */
6+
export default function () {}
7+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [tests/cases/compiler/jsDocOverloadNamedDefaultExport.ts] ////
2+
3+
//// [jsDocOverloadNamedDefaultExport.js]
4+
/** @overload */
5+
export default function foo() {}
6+
7+
8+
//// [jsDocOverloadNamedDefaultExport.js]
9+
/** @overload */
10+
export default function foo() { }
11+
12+
13+
//// [jsDocOverloadNamedDefaultExport.d.ts]
14+
/** @overload */
15+
export default function foo(): any;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//// [tests/cases/compiler/jsDocOverloadNamedDefaultExport.ts] ////
2+
3+
=== jsDocOverloadNamedDefaultExport.js ===
4+
/** @overload */
5+
export default function foo() {}
6+
>foo : Symbol(foo, Decl(jsDocOverloadNamedDefaultExport.js, 0, 5), Decl(jsDocOverloadNamedDefaultExport.js, 0, 0))
7+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//// [tests/cases/compiler/jsDocOverloadNamedDefaultExport.ts] ////
2+
3+
=== jsDocOverloadNamedDefaultExport.js ===
4+
/** @overload */
5+
export default function foo() {}
6+
>foo : () => any
7+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @target: es2015
2+
// @allowJs: true
3+
// @outDir: dist/
4+
// @declaration: true
5+
// @filename: jsDocOverloadAnonDefaultExport.js
6+
7+
/** @overload */
8+
export default function () {}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @target: es2015
2+
// @allowJs: true
3+
// @outDir: dist/
4+
// @declaration: true
5+
// @filename: jsDocOverloadNamedDefaultExport.js
6+
7+
/** @overload */
8+
export default function foo() {}

0 commit comments

Comments
 (0)