Skip to content

Commit ad291d9

Browse files
authored
Merge pull request #16748 from aozgaa/implementOptionCrash
visit question token
2 parents 53a5abc + 39b7965 commit ad291d9

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

src/compiler/factory.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,13 +314,14 @@ namespace ts {
314314
return node;
315315
}
316316

317-
export function updateProperty(node: PropertyDeclaration, decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: PropertyName, type: TypeNode | undefined, initializer: Expression | undefined) {
317+
export function updateProperty(node: PropertyDeclaration, decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined) {
318318
return node.decorators !== decorators
319319
|| node.modifiers !== modifiers
320320
|| node.name !== name
321+
|| node.questionToken !== questionToken
321322
|| node.type !== type
322323
|| node.initializer !== initializer
323-
? updateNode(createProperty(decorators, modifiers, name, node.questionToken, type, initializer), node)
324+
? updateNode(createProperty(decorators, modifiers, name, questionToken, type, initializer), node)
324325
: node;
325326
}
326327

@@ -360,6 +361,7 @@ namespace ts {
360361
|| node.modifiers !== modifiers
361362
|| node.asteriskToken !== asteriskToken
362363
|| node.name !== name
364+
|| node.questionToken !== questionToken
363365
|| node.typeParameters !== typeParameters
364366
|| node.parameters !== parameters
365367
|| node.type !== type

src/compiler/visitor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ namespace ts {
270270
nodesVisitor((<PropertyDeclaration>node).decorators, visitor, isDecorator),
271271
nodesVisitor((<PropertyDeclaration>node).modifiers, visitor, isModifier),
272272
visitNode((<PropertyDeclaration>node).name, visitor, isPropertyName),
273+
visitNode((<PropertyDeclaration>node).questionToken, tokenVisitor, isToken),
273274
visitNode((<PropertyDeclaration>node).type, visitor, isTypeNode),
274275
visitNode((<PropertyDeclaration>node).initializer, visitor, isExpression));
275276

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
//// interface IPerson {
4+
//// name: string;
5+
//// birthday?: string;
6+
//// }
7+
////
8+
//// class Person implements IPerson {[| |]}
9+
10+
verify.rangeAfterCodeFix(`
11+
name: string;
12+
birthday?: string;
13+
`);

0 commit comments

Comments
 (0)