File tree Expand file tree Collapse file tree
internal/transformers/declarations
testdata/baselines/reference
submoduleAccepted/conformance
submoduleTriaged/conformance Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2216,6 +2216,14 @@ func (tx *DeclarationTransformer) transformExpandoAssignment(node *ast.BinaryExp
22162216 return nil
22172217 }
22182218
2219+ if ast .IsFunctionDeclaration (declaration ) && declaration .FunctionLikeData ().FullSignature != nil {
2220+ return nil
2221+ }
2222+
2223+ if ast .IsVariableDeclaration (declaration ) && ! ast .IsFunctionLike (declaration .Initializer ()) {
2224+ return nil // We're going to add a type, no need to dupe members with a namespace
2225+ }
2226+
22192227 host := declaration .Symbol ()
22202228 if host == nil {
22212229 return nil
Original file line number Diff line number Diff line change @@ -13,41 +13,3 @@ declare var x: {
1313 if : number ;
1414 else: number ;
1515} ;
16- declare namespace x {
17- var _a : number ;
18- export { _a as if } ;
19- }
20- declare namespace x {
21- var _b : number ;
22- export { _b as else } ;
23- }
24-
25-
26- //// [DtsFileErrors]
27-
28-
29- repro . d . ts ( 1 , 13 ) : error TS2300: Duplicate identifier 'x' .
30- repro . d . ts ( 5 , 19 ) : error TS2300: Duplicate identifier 'x' .
31- repro . d . ts ( 9 , 19 ) : error TS2300: Duplicate identifier 'x' .
32-
33-
34- = === repro . d . ts ( 3 errors ) === =
35- declare var x : {
36- ~
37- ! ! ! error TS2300 : Duplicate identifier 'x' .
38- if : number ;
39- else: number ;
40- } ;
41- declare namespace x {
42- ~
43- ! ! ! error TS2300 : Duplicate identifier 'x' .
44- var _a : number ;
45- export { _a as if } ;
46- }
47- declare namespace x {
48- ~
49- ! ! ! error TS2300 : Duplicate identifier 'x' .
50- var _b : number ;
51- export { _b as else } ;
52- }
53-
Original file line number Diff line number Diff line change @@ -87,13 +87,6 @@ declare var Ns: {
8787 } ;
8888 } ;
8989} ;
90- declare namespace Ns {
91- var C1 : {
92- new ( ) : {
93- method ( ) : number ;
94- } ;
95- } ;
96- }
9790/** @implements {A} */
9891declare var C2: {
9992 new ( ) : {
@@ -117,10 +110,3 @@ declare class CC {
117110 } ;
118111}
119112declare var C5: any ;
120- declare namespace Ns {
121- var C5 : {
122- new ( ) : {
123- method ( ) : number ;
124- } ;
125- } ;
126- }
Original file line number Diff line number Diff line change @@ -14,42 +14,3 @@ declare const foo: {
1414 blah: number ;
1515 } ;
1616} ;
17- declare namespace foo {
18- var baz : {
19- blah : number ;
20- } ;
21- }
22- declare namespace foo {
23- var blah : number ;
24- }
25-
26-
27- //// [DtsFileErrors]
28-
29-
30- a . d . ts ( 1 , 15 ) : error TS2451: Cannot redeclare block - scoped variable 'foo' .
31- a . d . ts ( 6 , 19 ) : error TS2451: Cannot redeclare block - scoped variable 'foo' .
32- a . d . ts ( 11 , 19 ) : error TS2451: Cannot redeclare block - scoped variable 'foo' .
33-
34-
35- = === a . d . ts ( 3 errors ) === =
36- declare const foo : {
37- ~ ~ ~
38- ! ! ! error TS2451 : Cannot redeclare block - scoped variable 'foo' .
39- baz : {
40- blah: number ;
41- } ;
42- } ;
43- declare namespace foo {
44- ~ ~ ~
45- ! ! ! error TS2451 : Cannot redeclare block - scoped variable 'foo' .
46- var baz: {
47- blah: number ;
48- } ;
49- }
50- declare namespace foo {
51- ~ ~ ~
52- ! ! ! error TS2451 : Cannot redeclare block - scoped variable 'foo' .
53- var blah: number ;
54- }
55-
Original file line number Diff line number Diff line change 44 /** @implements {A} */
55 declare class B3 implements A {
66 }
7+ - declare namespace Ns {
8+ - export { C1 };
9+ - export let C5: {
10+ - new (): {
11+ - method(): number;
12+ - };
13+ - };
14+ - }
715+ declare var Ns: {
816+ /** @implements {A} */
917+ C1: {
1826+ };
1927+ };
2028+ };
21- declare namespace Ns {
22- - export { C1 };
23- - export let C5: {
24- + var C1: {
25- new (): {
26- method(): number;
27- };
28- @@= skipped -14, +27 lines =@@
29+ /** @implements {A} */
30+ declare var C2: {
31+ new (): {
2932 method(): number;
3033 };
3134 };
4346 declare class CC {
4447 /** @implements {A} */
4548 C4: {
46- @@= skipped -12 , +17 lines =@@
49+ @@= skipped -26 , +37 lines =@@
4750 };
4851 }
4952 declare var C5: any;
5255- }
5356- declare class C3 implements A {
5457- method(): number;
55- + declare namespace Ns {
56- + var C5: {
57- + new (): {
58- + method(): number;
59- + };
60- + };
61- }
58+ - }
Original file line number Diff line number Diff line change 1313+ baz: {
1414+ blah: number;
1515+ };
16- + };
17- + declare namespace foo {
18- + var baz: {
19- + blah: number;
20- + };
21- + }
22- + declare namespace foo {
23- + var blah: number;
24- + }
25- +
26- +
27- + //// [DtsFileErrors]
28- +
29- +
30- + a.d.ts(1,15): error TS2451: Cannot redeclare block-scoped variable 'foo'.
31- + a.d.ts(6,19): error TS2451: Cannot redeclare block-scoped variable 'foo'.
32- + a.d.ts(11,19): error TS2451: Cannot redeclare block-scoped variable 'foo'.
33- +
34- +
35- + ==== a.d.ts (3 errors) ====
36- + declare const foo: {
37- + ~~~
38- + !!! error TS2451: Cannot redeclare block-scoped variable 'foo'.
39- + baz: {
40- + blah: number;
41- + };
42- + };
43- + declare namespace foo {
44- + ~~~
45- + !!! error TS2451: Cannot redeclare block-scoped variable 'foo'.
46- + var baz: {
47- + blah: number;
48- + };
49- + }
50- + declare namespace foo {
51- + ~~~
52- + !!! error TS2451: Cannot redeclare block-scoped variable 'foo'.
53- + var blah: number;
54- + }
55- +
16+ + };
You can’t perform that action at this time.
0 commit comments