Skip to content

Commit e250942

Browse files
authored
Disallow nested object param syntax in callback tag (microsoft#24392)
* Callback tag:Disallow nested-object-param syntax Previously this caused a crash in parsing. If/when we want to support this syntax, we will need to fix this crash. * Update baselines
1 parent edf667b commit e250942

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

src/compiler/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6707,7 +6707,7 @@ namespace ts {
67076707
<JSDocParameterTag>createNode(SyntaxKind.JSDocParameterTag, atToken.pos);
67086708
let comment: string | undefined;
67096709
if (indent !== undefined) comment = parseTagComments(indent + scanner.getStartPos() - atToken.pos);
6710-
const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target);
6710+
const nestedTypeLiteral = target !== PropertyLikeParse.CallbackParameter && parseNestedTypeLiteral(typeExpression, name, target);
67116711
if (nestedTypeLiteral) {
67126712
typeExpression = nestedTypeLiteral;
67136713
isNameFirst = true;

tests/baselines/reference/callbackTagNamespace.symbols

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
=== tests/cases/conformance/jsdoc/namespaced.js ===
22
/**
33
* @callback NS.Nested.Inner
4-
* @param {string} space - spaaaaaaaaace
5-
* @param {string} peace - peaaaaaaaaace
4+
* @param {Object} space - spaaaaaaaaace
5+
* @param {Object} peace - peaaaaaaaaace
66
* @return {string | number}
77
*/
88
var x = 1;

tests/baselines/reference/callbackTagNamespace.types

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
=== tests/cases/conformance/jsdoc/namespaced.js ===
22
/**
33
* @callback NS.Nested.Inner
4-
* @param {string} space - spaaaaaaaaace
5-
* @param {string} peace - peaaaaaaaaace
4+
* @param {Object} space - spaaaaaaaaace
5+
* @param {Object} peace - peaaaaaaaaace
66
* @return {string | number}
77
*/
88
var x = 1;
@@ -11,9 +11,9 @@ var x = 1;
1111

1212
/** @type {NS.Nested.Inner} */
1313
function f(space, peace) {
14-
>f : (space: string, peace: string) => string
15-
>space : string
16-
>peace : string
14+
>f : (space: any, peace: any) => string
15+
>space : any
16+
>peace : any
1717

1818
return '1'
1919
>'1' : "1"

tests/cases/conformance/jsdoc/callbackTagNamespace.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
// @Filename: namespaced.js
55
/**
66
* @callback NS.Nested.Inner
7-
* @param {string} space - spaaaaaaaaace
8-
* @param {string} peace - peaaaaaaaaace
7+
* @param {Object} space - spaaaaaaaaace
8+
* @param {Object} peace - peaaaaaaaaace
99
* @return {string | number}
1010
*/
1111
var x = 1;

0 commit comments

Comments
 (0)