Do not add extra space for ommited expressions.

This commit is contained in:
Mohamed Hegazy 2016-02-24 13:25:08 -08:00
parent 8b9afce894
commit 4bf5f82e83
9 changed files with 39 additions and 40 deletions

View File

@ -2211,23 +2211,22 @@ namespace ts {
function buildBindingElementDisplay(bindingElement: BindingElement, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, symbolStack?: Symbol[]) {
if (bindingElement.kind === SyntaxKind.OmittedExpression) {
writeSpace(writer);
return;
}
else if (bindingElement.kind === SyntaxKind.BindingElement) {
if (bindingElement.propertyName) {
writer.writeSymbol(getTextOfNode(bindingElement.propertyName), bindingElement.symbol);
writePunctuation(writer, SyntaxKind.ColonToken);
Debug.assert(bindingElement.kind === SyntaxKind.BindingElement);
if (bindingElement.propertyName) {
writer.writeSymbol(getTextOfNode(bindingElement.propertyName), bindingElement.symbol);
writePunctuation(writer, SyntaxKind.ColonToken);
}
if (bindingElement.name) {
if (isBindingPattern(bindingElement.name)) {
buildBindingPatternDisplay(<BindingPattern>bindingElement.name, writer, enclosingDeclaration, flags, symbolStack);
}
if (bindingElement.name) {
if (isBindingPattern(bindingElement.name)) {
buildBindingPatternDisplay(<BindingPattern>bindingElement.name, writer, enclosingDeclaration, flags, symbolStack);
}
else {
if (bindingElement.dotDotDotToken) {
writePunctuation(writer, SyntaxKind.DotDotDotToken);
}
appendSymbolNameOnly(bindingElement.symbol, writer);
else {
if (bindingElement.dotDotDotToken) {
writePunctuation(writer, SyntaxKind.DotDotDotToken);
}
appendSymbolNameOnly(bindingElement.symbol, writer);
}
}
}

View File

@ -25,7 +25,7 @@ var results: string[];
function f([, a, , b, , , , s, , , ] = results) {
>f : ([ , a, , b, , , , s, , ,]?: string[]) => void
>f : ([, a, , b, , , , s, , ,]?: string[]) => void
> : undefined
>a : string
> : undefined

View File

@ -65,14 +65,14 @@ var p2 = ([...a]) => { };
>a : any[]
var p3 = ([, a]) => { };
>p3 : ([ , a]: [any, any]) => void
>([, a]) => { } : ([ , a]: [any, any]) => void
>p3 : ([, a]: [any, any]) => void
>([, a]) => { } : ([, a]: [any, any]) => void
> : undefined
>a : any
var p4 = ([, ...a]) => { };
>p4 : ([ , ...a]: any[]) => void
>([, ...a]) => { } : ([ , ...a]: any[]) => void
>p4 : ([, ...a]: any[]) => void
>([, ...a]) => { } : ([, ...a]: any[]) => void
> : undefined
>a : any[]

View File

@ -1,23 +1,23 @@
=== tests/cases/compiler/declarationEmitDestructuring5.ts ===
function baz([, z, , ]) { }
>baz : ([ , z, ,]: [any, any, any]) => void
>baz : ([, z, ,]: [any, any, any]) => void
> : undefined
>z : any
> : undefined
function foo([, b, ]: [any, any]): void { }
>foo : ([ , b,]: [any, any]) => void
>foo : ([, b,]: [any, any]) => void
> : undefined
>b : any
function bar([z, , , ]) { }
>bar : ([z, , ,]: [any, any, any]) => void
>bar : ([z, , ,]: [any, any, any]) => void
>z : any
> : undefined
> : undefined
function bar1([z, , , ] = [1, 3, 4, 6, 7]) { }
>bar1 : ([z, , ,]?: [number, number, number, number, number]) => void
>bar1 : ([z, , ,]?: [number, number, number, number, number]) => void
>z : number
> : undefined
> : undefined
@ -29,7 +29,7 @@ function bar1([z, , , ] = [1, 3, 4, 6, 7]) { }
>7 : number
function bar2([,,z, , , ]) { }
>bar2 : ([ , , z, , ,]: [any, any, any, any, any]) => void
>bar2 : ([, , z, , ,]: [any, any, any, any, any]) => void
> : undefined
> : undefined
>z : any

View File

@ -52,14 +52,14 @@ var p2 = ([...a]) => { };
>a : any[]
var p3 = ([, a]) => { };
>p3 : ([ , a]: [any, any]) => void
>([, a]) => { } : ([ , a]: [any, any]) => void
>p3 : ([, a]: [any, any]) => void
>([, a]) => { } : ([, a]: [any, any]) => void
> : undefined
>a : any
var p4 = ([, ...a]) => { };
>p4 : ([ , ...a]: Iterable<any>) => void
>([, ...a]) => { } : ([ , ...a]: Iterable<any>) => void
>p4 : ([, ...a]: Iterable<any>) => void
>([, ...a]) => { } : ([, ...a]: Iterable<any>) => void
> : undefined
>a : any[]

View File

@ -18,7 +18,7 @@ var robotA: Robot = [1, "mower", "mowing"];
>"mowing" : string
function foo1([, nameA]: Robot) {
>foo1 : ([ , nameA]: [number, string, string]) => void
>foo1 : ([, nameA]: [number, string, string]) => void
> : undefined
>nameA : string
>Robot : [number, string, string]
@ -75,12 +75,12 @@ function foo4([numberA3, ...robotAInfo]: Robot) {
foo1(robotA);
>foo1(robotA) : void
>foo1 : ([ , nameA]: [number, string, string]) => void
>foo1 : ([, nameA]: [number, string, string]) => void
>robotA : [number, string, string]
foo1([2, "trimmer", "trimming"]);
>foo1([2, "trimmer", "trimming"]) : void
>foo1 : ([ , nameA]: [number, string, string]) => void
>foo1 : ([, nameA]: [number, string, string]) => void
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string

View File

@ -19,7 +19,7 @@ var robotA: Robot = ["trimmer", ["trimming", "edging"]];
>"edging" : string
function foo1([, skillA]: Robot) {
>foo1 : ([ , skillA]: [string, [string, string]]) => void
>foo1 : ([, skillA]: [string, [string, string]]) => void
> : undefined
>skillA : [string, string]
>Robot : [string, [string, string]]
@ -75,12 +75,12 @@ function foo4([...multiRobotAInfo]: Robot) {
foo1(robotA);
>foo1(robotA) : void
>foo1 : ([ , skillA]: [string, [string, string]]) => void
>foo1 : ([, skillA]: [string, [string, string]]) => void
>robotA : [string, [string, string]]
foo1(["roomba", ["vaccum", "mopping"]]);
>foo1(["roomba", ["vaccum", "mopping"]]) : void
>foo1 : ([ , skillA]: [string, [string, string]]) => void
>foo1 : ([, skillA]: [string, [string, string]]) => void
>["roomba", ["vaccum", "mopping"]] : [string, [string, string]]
>"roomba" : string
>["vaccum", "mopping"] : [string, string]

View File

@ -18,7 +18,7 @@ var robotA: Robot = [1, "mower", "mowing"];
>"mowing" : string
function foo1([, nameA = "noName"]: Robot = [-1, "name", "skill"]) {
>foo1 : ([ , nameA]?: [number, string, string]) => void
>foo1 : ([, nameA]?: [number, string, string]) => void
> : undefined
>nameA : string
>"noName" : string
@ -104,12 +104,12 @@ function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
foo1(robotA);
>foo1(robotA) : void
>foo1 : ([ , nameA]?: [number, string, string]) => void
>foo1 : ([, nameA]?: [number, string, string]) => void
>robotA : [number, string, string]
foo1([2, "trimmer", "trimming"]);
>foo1([2, "trimmer", "trimming"]) : void
>foo1 : ([ , nameA]?: [number, string, string]) => void
>foo1 : ([, nameA]?: [number, string, string]) => void
>[2, "trimmer", "trimming"] : [number, string, string]
>2 : number
>"trimmer" : string

View File

@ -19,7 +19,7 @@ var robotA: Robot = ["trimmer", ["trimming", "edging"]];
>"edging" : string
function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
>foo1 : ([ , skillA]?: [string, string[]]) => void
>foo1 : ([, skillA]?: [string, string[]]) => void
> : undefined
>skillA : string[]
>["noSkill", "noSkill"] : string[]
@ -88,12 +88,12 @@ function foo3([nameMA = "noName", [
foo1(robotA);
>foo1(robotA) : void
>foo1 : ([ , skillA]?: [string, string[]]) => void
>foo1 : ([, skillA]?: [string, string[]]) => void
>robotA : [string, string[]]
foo1(["roomba", ["vaccum", "mopping"]]);
>foo1(["roomba", ["vaccum", "mopping"]]) : void
>foo1 : ([ , skillA]?: [string, string[]]) => void
>foo1 : ([, skillA]?: [string, string[]]) => void
>["roomba", ["vaccum", "mopping"]] : [string, string[]]
>"roomba" : string
>["vaccum", "mopping"] : string[]