Skip to content

Commit c33f83a

Browse files
authored
Fixed a printer crash caused by empty parameter modifiers (#60537)
1 parent b46556e commit c33f83a

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/compiler/expressionToTypeNode.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ export function createSyntacticTypeNodeBuilder(
11131113
function ensureParameter(p: ParameterDeclaration, context: SyntacticTypeNodeBuilderContext) {
11141114
return factory.updateParameterDeclaration(
11151115
p,
1116-
[],
1116+
/*modifiers*/ undefined,
11171117
reuseNode(context, p.dotDotDotToken),
11181118
resolver.serializeNameOfParameter(context, p),
11191119
resolver.isOptionalParameter(p) ? factory.createToken(SyntaxKind.QuestionToken) : undefined,
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
///<reference path="fourslash.ts" />
2+
3+
// @filename: /tokenizer.ts
4+
//// export default abstract class Tokenizer {
5+
//// errorBuilder() {
6+
//// return (pos: number, lineStart: number, curLine: number) => {};
7+
//// }
8+
//// }
9+
10+
// @filename: /expression.ts
11+
//// import Tokenizer from "./tokenizer.js";
12+
////
13+
//// export default abstract class ExpressionParser extends Tokenizer {
14+
//// /**/
15+
//// }
16+
17+
verify.completions({
18+
marker: "",
19+
includes: [
20+
{
21+
name: "errorBuilder",
22+
insertText: "errorBuilder(): (pos: number, lineStart: number, curLine: number) => void {\n}",
23+
filterText: "errorBuilder",
24+
},
25+
],
26+
preferences: {
27+
includeCompletionsWithInsertText: true,
28+
includeCompletionsWithClassMemberSnippets: true,
29+
},
30+
isNewIdentifierLocation: true,
31+
});

0 commit comments

Comments
 (0)