Merge pull request #16748 from aozgaa/implementOptionCrash

visit question token
This commit is contained in:
Arthur Ozga 2017-07-06 13:51:15 -07:00 committed by GitHub
commit ad291d924d
3 changed files with 18 additions and 2 deletions

View File

@ -314,13 +314,14 @@ namespace ts {
return node;
}
export function updateProperty(node: PropertyDeclaration, decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: PropertyName, type: TypeNode | undefined, initializer: Expression | undefined) {
export function updateProperty(node: PropertyDeclaration, decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined) {
return node.decorators !== decorators
|| node.modifiers !== modifiers
|| node.name !== name
|| node.questionToken !== questionToken
|| node.type !== type
|| node.initializer !== initializer
? updateNode(createProperty(decorators, modifiers, name, node.questionToken, type, initializer), node)
? updateNode(createProperty(decorators, modifiers, name, questionToken, type, initializer), node)
: node;
}
@ -360,6 +361,7 @@ namespace ts {
|| node.modifiers !== modifiers
|| node.asteriskToken !== asteriskToken
|| node.name !== name
|| node.questionToken !== questionToken
|| node.typeParameters !== typeParameters
|| node.parameters !== parameters
|| node.type !== type

View File

@ -270,6 +270,7 @@ namespace ts {
nodesVisitor((<PropertyDeclaration>node).decorators, visitor, isDecorator),
nodesVisitor((<PropertyDeclaration>node).modifiers, visitor, isModifier),
visitNode((<PropertyDeclaration>node).name, visitor, isPropertyName),
visitNode((<PropertyDeclaration>node).questionToken, tokenVisitor, isToken),
visitNode((<PropertyDeclaration>node).type, visitor, isTypeNode),
visitNode((<PropertyDeclaration>node).initializer, visitor, isExpression));

View File

@ -0,0 +1,13 @@
/// <reference path='fourslash.ts' />
//// interface IPerson {
//// name: string;
//// birthday?: string;
//// }
////
//// class Person implements IPerson {[| |]}
verify.rangeAfterCodeFix(`
name: string;
birthday?: string;
`);