Skip to content

Commit eda2b28

Browse files
authored
Fixed top-level binding element declaration emit (#1336)
1 parent ce04369 commit eda2b28

File tree

40 files changed

+102
-374
lines changed

40 files changed

+102
-374
lines changed

internal/checker/emitresolver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func (r *emitResolver) determineIfDeclarationIsVisible(node *ast.Node) bool {
148148
ast.KindImportEqualsDeclaration:
149149
if ast.IsVariableDeclaration(node) {
150150
if ast.IsBindingPattern(node.Name()) &&
151-
len(node.Name().AsBindingPattern().Elements.Nodes) > 0 {
151+
len(node.Name().AsBindingPattern().Elements.Nodes) == 0 {
152152
// If the binding pattern is empty, this variable declaration is not visible
153153
return false
154154
}

internal/transformers/declarations/transform.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -673,9 +673,6 @@ func (tx *DeclarationTransformer) recreateBindingPattern(input *ast.BindingPatte
673673
}
674674

675675
func (tx *DeclarationTransformer) recreateBindingElement(e *ast.BindingElement) *ast.Node {
676-
if e.Kind == ast.KindBindingElement {
677-
return nil
678-
}
679676
if e.Name() == nil {
680677
return nil
681678
}

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,9 @@ var [x3, y3, z3] = a; // emit x3, y3, z3
2121

2222

2323
//// [declarationEmitDestructuringArrayPattern1.d.ts]
24+
declare var x: number; // emit x: number
25+
declare var x1: number, y1: string; // emit x1: number, y1: string
26+
declare var z1: number; // emit z1: number
2427
declare var a: (string | number)[];
28+
declare var x2: string | number; // emit x2: number | string
29+
declare var x3: string | number, y3: string | number, z3: string | number; // emit x3, y3, z3

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
-declare var x: number;
88
-declare var x1: number, y1: string;
99
-declare var z1: number;
10+
+declare var x: number; // emit x: number
11+
+declare var x1: number, y1: string; // emit x1: number, y1: string
12+
+declare var z1: number; // emit z1: number
1013
declare var a: (string | number)[];
1114
-declare var x2: string | number;
12-
-declare var x3: string | number, y3: string | number, z3: string | number;
15+
-declare var x3: string | number, y3: string | number, z3: string | number;
16+
+declare var x2: string | number; // emit x2: number | string
17+
+declare var x3: string | number, y3: string | number, z3: string | number; // emit x3, y3, z3

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,12 @@ var [a3, b3] = [[x13, y13], { x: x13, y: y13 }];
2222

2323

2424
//// [declarationEmitDestructuringArrayPattern2.d.ts]
25+
declare var x10: number, y10: string, z10: boolean;
26+
declare var x11: number, y11: string;
27+
declare var a11: undefined, b11: undefined, c11: undefined;
28+
declare var a2: number, b2: string, x12: number, c2: boolean;
29+
declare var x13: number, y13: string;
30+
declare var a3: (string | number)[], b3: {
31+
x: number;
32+
y: string;
33+
};

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js.diff

Lines changed: 0 additions & 15 deletions
This file was deleted.

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern3.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ var M;
1414

1515
//// [declarationEmitDestructuringArrayPattern3.d.ts]
1616
declare namespace M {
17+
var a: number, b: number;
1718
}

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern3.js.diff

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,3 @@
99
+ [M.a, M.b] = [1, 2];
1010
})(M || (M = {}));
1111

12-
13-
//// [declarationEmitDestructuringArrayPattern3.d.ts]
14-
declare namespace M {
15-
- var a: number, b: number;
16-
}

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,11 @@ var [x19, y19, z19, ...a13] = [1, "hello", true];
2323

2424

2525
//// [declarationEmitDestructuringArrayPattern4.d.ts]
26+
declare var a5: number[];
27+
declare var x14: number, a6: [number, number];
28+
declare var x15: number, y15: number, a7: [number];
29+
declare var x16: number, y16: number, z16: number, a8: [];
30+
declare var a9: (string | number | boolean)[];
31+
declare var x17: number, a10: [string, boolean];
32+
declare var x18: number, y18: string, a12: [boolean];
33+
declare var x19: number, y19: string, z19: boolean, a13: [];

testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js.diff

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)