Skip to content

Commit 6e50826

Browse files
committed
skip 'import ...' nodes when creating variable statement for imports
1 parent dcb4c24 commit 6e50826

15 files changed

+193
-26
lines changed

src/compiler/emitter.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4880,7 +4880,11 @@ var __param = this.__param || function(index, decorator) { return function (targ
48804880
writeLine();
48814881
let started = false;
48824882
for (let importNode of externalImports) {
4883-
if (importNode.kind === SyntaxKind.ExportDeclaration) {
4883+
let skipNode =
4884+
importNode.kind === SyntaxKind.ExportDeclaration ||
4885+
(importNode.kind === SyntaxKind.ImportDeclaration && !(<ImportDeclaration>importNode).importClause)
4886+
4887+
if (skipNode) {
48844888
continue;
48854889
}
48864890

tests/baselines/reference/systemModule10.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ System.register(['file1', 'file2'], function(exports_1) {
1616
setters:[
1717
function (v_1) {
1818
file1_1 = v_1
19-
exports_1("n", file1_1.default);
20-
exports_1("n1", file1_1.default);
19+
exports_1("n", file1_1["default"]);
20+
exports_1("n1", file1_1["default"]);
2121
exports_1("x", file1_1.x);
2222
exports_1("y", file1_1.x);
2323
},
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/cases/compiler/systemModule11.ts(3,17): error TS2307: Cannot find external module 'bar'.
2+
3+
4+
==== tests/cases/compiler/systemModule11.ts (1 errors) ====
5+
6+
import 'foo'
7+
import {f} from 'bar';
8+
~~~~~
9+
!!! error TS2307: Cannot find external module 'bar'.
10+
11+
f();
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//// [systemModule11.ts]
2+
3+
import 'foo'
4+
import {f} from 'bar';
5+
6+
f();
7+
8+
//// [systemModule11.js]
9+
System.register(['foo', 'bar'], function(exports_1) {
10+
var bar_1;
11+
return {
12+
setters:[
13+
function (v_1) {},
14+
function (v_1) {
15+
bar_1 = v_1
16+
}],
17+
execute: function() {
18+
bar_1.f();
19+
}
20+
}
21+
});
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
tests/cases/compiler/systemModule2.ts(3,1): error TS1212: Export assignment is not supported when '--module' flag is 'system'.
1+
tests/cases/compiler/systemModule2.ts(3,1): error TS1218: Export assignment is not supported when '--module' flag is 'system'.
22

33

44
==== tests/cases/compiler/systemModule2.ts (1 errors) ====
55

66
var x = 1;
77
export = x;
88
~~~~~~~~~~~
9-
!!! error TS1212: Export assignment is not supported when '--module' flag is 'system'.
9+
!!! error TS1218: Export assignment is not supported when '--module' flag is 'system'.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== tests/cases/compiler/systemModule4.ts ===
2+
3+
export var x = 1;
4+
>x : Symbol(x, Decl(systemModule4.ts, 1, 10))
5+
6+
export var y;
7+
>y : Symbol(y, Decl(systemModule4.ts, 2, 10))
8+

tests/baselines/reference/systemModule4.types

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
export var x = 1;
44
>x : number
5+
>1 : number
56

67
export var y;
78
>y : any
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
=== tests/cases/compiler/systemModule7.ts ===
2+
3+
// filename: instantiatedModule.ts
4+
export module M {
5+
>M : Symbol(M, Decl(systemModule7.ts, 0, 0), Decl(systemModule7.ts, 4, 1))
6+
7+
var x = 1;
8+
>x : Symbol(x, Decl(systemModule7.ts, 3, 7))
9+
}
10+
11+
// filename: nonInstantiatedModule.ts
12+
export module M {
13+
>M : Symbol(M, Decl(systemModule7.ts, 0, 0), Decl(systemModule7.ts, 4, 1))
14+
15+
interface I {}
16+
>I : Symbol(I, Decl(systemModule7.ts, 7, 17))
17+
}

tests/baselines/reference/systemModule7.types

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export module M {
66

77
var x = 1;
88
>x : number
9+
>1 : number
910
}
1011

1112
// filename: nonInstantiatedModule.ts

tests/baselines/reference/systemModule8.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ System.register([], function(exports_1) {
5252
for (exports_1("x", x = 15);; exports_1("x", ++x)) { }
5353
for (exports_1("x", x = 18);; exports_1("x", --x)) { }
5454
for (x_1 = 50;;) { }
55-
exports_1("y", y = ([1])[0]);
55+
exports_1("y", y = [1][0]);
5656
_a = { a: true, b: { c: "123" } }, exports_1("z0", z0 = _a.a), exports_1("z1", z1 = _a.b.c);
5757
for (var _i = 0, _b = [[1]]; _i < _b.length; _i++) {
5858
exports_1("x", x = _b[_i][0]);
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
=== tests/cases/compiler/systemModule8.ts ===
2+
3+
export var x;
4+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
5+
6+
x = 1;
7+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
8+
9+
x++;
10+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
11+
12+
x--;
13+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
14+
15+
++x;
16+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
17+
18+
--x;
19+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
20+
21+
x += 1;
22+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
23+
24+
x -= 1;
25+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
26+
27+
x *= 1;
28+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
29+
30+
x /= 1;
31+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
32+
33+
x |= 1;
34+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
35+
36+
x &= 1;
37+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
38+
39+
for (x = 5;;x++) {}
40+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
41+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
42+
43+
for (x = 8;;x--) {}
44+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
45+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
46+
47+
for (x = 15;;++x) {}
48+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
49+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
50+
51+
for (x = 18;;--x) {}
52+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
53+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
54+
55+
for (let x = 50;;) {}
56+
>x : Symbol(x, Decl(systemModule8.ts, 18, 8))
57+
58+
function foo() {
59+
>foo : Symbol(foo, Decl(systemModule8.ts, 18, 21))
60+
61+
x = 100;
62+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
63+
}
64+
65+
export let [y] = [1];
66+
>y : Symbol(y, Decl(systemModule8.ts, 23, 12))
67+
68+
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
69+
>z0 : Symbol(z0, Decl(systemModule8.ts, 24, 14))
70+
>z1 : Symbol(z1, Decl(systemModule8.ts, 24, 25))
71+
>a : Symbol(a, Decl(systemModule8.ts, 24, 36))
72+
>b : Symbol(b, Decl(systemModule8.ts, 24, 44))
73+
>c : Symbol(c, Decl(systemModule8.ts, 24, 49))
74+
75+
for ([x] of [[1]]) {}
76+
>x : Symbol(x, Decl(systemModule8.ts, 1, 10))
77+

tests/baselines/reference/systemModule8.types

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export var x;
66
x = 1;
77
>x = 1 : number
88
>x : any
9+
>1 : number
910

1011
x++;
1112
>x++ : number
@@ -26,81 +27,97 @@ x--;
2627
x += 1;
2728
>x += 1 : any
2829
>x : any
30+
>1 : number
2931

3032
x -= 1;
3133
>x -= 1 : number
3234
>x : any
35+
>1 : number
3336

3437
x *= 1;
3538
>x *= 1 : number
3639
>x : any
40+
>1 : number
3741

3842
x /= 1;
3943
>x /= 1 : number
4044
>x : any
45+
>1 : number
4146

4247
x |= 1;
4348
>x |= 1 : number
4449
>x : any
50+
>1 : number
4551

4652
x &= 1;
4753
>x &= 1 : number
4854
>x : any
55+
>1 : number
4956

5057
for (x = 5;;x++) {}
5158
>x = 5 : number
5259
>x : any
60+
>5 : number
5361
>x++ : number
5462
>x : any
5563

5664
for (x = 8;;x--) {}
5765
>x = 8 : number
5866
>x : any
67+
>8 : number
5968
>x-- : number
6069
>x : any
6170

6271
for (x = 15;;++x) {}
6372
>x = 15 : number
6473
>x : any
74+
>15 : number
6575
>++x : number
6676
>x : any
6777

6878
for (x = 18;;--x) {}
6979
>x = 18 : number
7080
>x : any
81+
>18 : number
7182
>--x : number
7283
>x : any
7384

7485
for (let x = 50;;) {}
7586
>x : number
87+
>50 : number
7688

7789
function foo() {
7890
>foo : () => void
7991

8092
x = 100;
8193
>x = 100 : number
8294
>x : any
95+
>100 : number
8396
}
8497

8598
export let [y] = [1];
8699
>y : number
87100
>[1] : [number]
101+
>1 : number
88102

89103
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
90-
>a : unknown
104+
>a : any
91105
>z0 : boolean
92-
>b : unknown
93-
>c : unknown
106+
>b : any
107+
>c : any
94108
>z1 : string
95109
>{a: true, b: {c: "123"}} : { a: boolean; b: { c: string; }; }
96110
>a : boolean
111+
>true : boolean
97112
>b : { c: string; }
98113
>{c: "123"} : { c: string; }
99114
>c : string
115+
>"123" : string
100116

101117
for ([x] of [[1]]) {}
102118
>[x] : any[]
103119
>x : any
104120
>[[1]] : number[][]
105121
>[1] : number[]
122+
>1 : number
106123

tests/baselines/reference/systemModule9.errors.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
tests/cases/compiler/systemModule9.ts(2,21): error TS2307: Cannot find external module 'file1'.
22
tests/cases/compiler/systemModule9.ts(3,25): error TS2307: Cannot find external module 'file2'.
33
tests/cases/compiler/systemModule9.ts(4,15): error TS2307: Cannot find external module 'file3'.
4-
tests/cases/compiler/systemModule9.ts(5,25): error TS2307: Cannot find external module 'file4'.
5-
tests/cases/compiler/systemModule9.ts(6,22): error TS2307: Cannot find external module 'file5'.
6-
tests/cases/compiler/systemModule9.ts(16,15): error TS2307: Cannot find external module 'file6'.
4+
tests/cases/compiler/systemModule9.ts(6,25): error TS2307: Cannot find external module 'file5'.
5+
tests/cases/compiler/systemModule9.ts(7,22): error TS2307: Cannot find external module 'file6'.
6+
tests/cases/compiler/systemModule9.ts(17,15): error TS2307: Cannot find external module 'file7'.
77

88

99
==== tests/cases/compiler/systemModule9.ts (6 errors) ====
@@ -17,12 +17,13 @@ tests/cases/compiler/systemModule9.ts(16,15): error TS2307: Cannot find external
1717
import d from 'file3'
1818
~~~~~~~
1919
!!! error TS2307: Cannot find external module 'file3'.
20-
import e, * as ns2 from 'file4';
20+
import 'file4'
21+
import e, * as ns2 from 'file5';
2122
~~~~~~~
22-
!!! error TS2307: Cannot find external module 'file4'.
23-
import ns3 = require('file5');
24-
~~~~~~~
2523
!!! error TS2307: Cannot find external module 'file5'.
24+
import ns3 = require('file6');
25+
~~~~~~~
26+
!!! error TS2307: Cannot find external module 'file6'.
2627

2728
ns.f();
2829
a();
@@ -32,9 +33,9 @@ tests/cases/compiler/systemModule9.ts(16,15): error TS2307: Cannot find external
3233
ns2.f();
3334
ns3.f();
3435

35-
export * from 'file6';
36+
export * from 'file7';
3637
~~~~~~~
37-
!!! error TS2307: Cannot find external module 'file6'.
38+
!!! error TS2307: Cannot find external module 'file7'.
3839

3940
var x, y = true;
4041
export {x};

0 commit comments

Comments
 (0)