Skip to content

Commit 7d049c2

Browse files
committed
Write property name of destructuring pattern explicitly
There wont be any symbol for the property name but we already know it is a property name Fixes #12166
1 parent 8f2d531 commit 7d049c2

File tree

6 files changed

+20
-1
lines changed

6 files changed

+20
-1
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2673,7 +2673,7 @@ namespace ts {
26732673
}
26742674
Debug.assert(bindingElement.kind === SyntaxKind.BindingElement);
26752675
if (bindingElement.propertyName) {
2676-
writer.writeSymbol(getTextOfNode(bindingElement.propertyName), bindingElement.symbol);
2676+
writer.writeProperty(getTextOfNode(bindingElement.propertyName));
26772677
writePunctuation(writer, SyntaxKind.ColonToken);
26782678
writeSpace(writer);
26792679
}

src/compiler/declarationEmitter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ namespace ts {
194194
writer.writeSpace = writer.write;
195195
writer.writeStringLiteral = writer.writeLiteral;
196196
writer.writeParameter = writer.write;
197+
writer.writeProperty = writer.write;
197198
writer.writeSymbol = writer.write;
198199
setWriter(writer);
199200
}

src/compiler/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2407,6 +2407,7 @@ namespace ts {
24072407
writeSpace(text: string): void;
24082408
writeStringLiteral(text: string): void;
24092409
writeParameter(text: string): void;
2410+
writeProperty(text: string): void;
24102411
writeSymbol(text: string, symbol: Symbol): void;
24112412
writeLine(): void;
24122413
increaseIndent(): void;

src/compiler/utilities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ namespace ts {
4343
writeSpace: writeText,
4444
writeStringLiteral: writeText,
4545
writeParameter: writeText,
46+
writeProperty: writeText,
4647
writeSymbol: writeText,
4748

4849
// Completely ignore indentation for string writers. And map newlines to

src/services/utilities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,7 @@ namespace ts {
11371137
writeSpace: text => writeKind(text, SymbolDisplayPartKind.space),
11381138
writeStringLiteral: text => writeKind(text, SymbolDisplayPartKind.stringLiteral),
11391139
writeParameter: text => writeKind(text, SymbolDisplayPartKind.parameterName),
1140+
writeProperty: text => writeKind(text, SymbolDisplayPartKind.propertyName),
11401141
writeSymbol,
11411142
writeLine,
11421143
increaseIndent: () => { indent++; },
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @filename: a.tsx
4+
////import * as React from 'react';
5+
////interface SomeInterface {
6+
//// someBoolean: boolean,
7+
//// someString: string;
8+
////}
9+
////interface SomeProps {
10+
//// someProp: SomeInterface;
11+
////}
12+
////export const /*1*/SomeStatelessComponent = ({someProp: { someBoolean, someString}}: SomeProps) => (<div>{`${someBoolean}${someString}`});
13+
14+
goTo.marker("1");
15+
verify.quickInfoExists();

0 commit comments

Comments
 (0)