Skip to content

Commit cfe4cbd

Browse files
committed
Merge branch 'master' of github.com:Microsoft/TypeScript
2 parents c25088c + b4a1a59 commit cfe4cbd

File tree

41 files changed

+645
-476
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+645
-476
lines changed

src/compiler/transformers/declarations.ts

Lines changed: 66 additions & 29 deletions
Large diffs are not rendered by default.

src/testRunner/externalCompileRunner.ts

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,15 @@ ${sanitizeDockerfileOutput(result.stderr.toString())}`;
157157
}
158158

159159
function sanitizeDockerfileOutput(result: string): string {
160-
return stripAbsoluteImportPaths(sanitizeTimestamps(sanitizeVersionSpecifiers(stripRushStageNumbers(stripANSIEscapes(normalizeNewlines(result))))));
160+
return [
161+
normalizeNewlines,
162+
stripANSIEscapes,
163+
stripRushStageNumbers,
164+
sanitizeVersionSpecifiers,
165+
sanitizeTimestamps,
166+
sanitizeUnimportantGulpOutput,
167+
stripAbsoluteImportPaths,
168+
].reduce((result, f) => f(result), result);
161169
}
162170

163171
function normalizeNewlines(result: string): string {
@@ -172,17 +180,28 @@ function stripRushStageNumbers(result: string): string {
172180
return result.replace(/\d+ of \d+:/g, "XX of XX:");
173181
}
174182

183+
/**
184+
* Gulp's output order within a `parallel` block is nondeterministic (and there's no way to configure it to execute in series),
185+
* so we purge as much of the gulp output as we can
186+
*/
187+
function sanitizeUnimportantGulpOutput(result: string): string {
188+
return result.replace(/^.*(\] (Starting)|(Finished)).*$/gm, "") // task start/end messages (nondeterministic order)
189+
.replace(/^.*\] Respawned to PID: \d+.*$/gm, "") // PID of child is OS and system-load dependent (likely stableish in a container but still dangerous)
190+
.replace(/\n+/g, "\n");
191+
}
192+
175193
function sanitizeTimestamps(result: string): string {
176194
return result.replace(/\[\d?\d:\d\d:\d\d (A|P)M\]/g, "[XX:XX:XX XM]")
177-
.replace(/\d+(\.\d+)? seconds?/g, "? seconds")
178-
.replace(/\d+(\.\d+)? minutes?/g, "")
179-
.replace(/\d+(\.\d+)?s/g, "?s");
195+
.replace(/\[\d?\d:\d\d:\d\d\]/g, "[XX:XX:XX]")
196+
.replace(/\d+(\.\d+)? sec(onds?)?/g, "? seconds")
197+
.replace(/\d+(\.\d+)? min(utes?)?/g, "")
198+
.replace(/\d+(\.\d+)?( m)?s/g, "?s");
180199
}
181200

182201
function sanitizeVersionSpecifiers(result: string): string {
183202
return result
184203
.replace(/\d+.\d+.\d+-insiders.\d\d\d\d\d\d\d\d/g, "X.X.X-insiders.xxxxxxxx")
185-
.replace(/@\d+\.\d+\.\d+/g, "@X.X.X");
204+
.replace(/([@v])\d+\.\d+\.\d+/g, "$1X.X.X");
186205
}
187206

188207
/**

tests/baselines/reference/aliasInaccessibleModule.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ declare module M {
1616
module N {
1717
}
1818
export import X = N;
19+
export {};
1920
}

tests/baselines/reference/aliasInaccessibleModule2.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ declare module M {
3131
}
3232
import R = N;
3333
export import X = R;
34+
export {};
3435
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorAccessors.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,13 +264,13 @@ var m;
264264
declare module m {
265265
class private1 {
266266
}
267-
class public1 {
267+
export class public1 {
268268
}
269269
module m2 {
270270
class public2 {
271271
}
272272
}
273-
class c {
273+
export class c {
274274
readonly foo1: private1;
275275
readonly foo2: private1;
276276
foo3: private1;
@@ -287,4 +287,5 @@ declare module m {
287287
foo114: m2.public2;
288288
foo115: m2.public2;
289289
}
290+
export {};
290291
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorParameterOfFunction.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,17 @@ var m;
111111
declare module m {
112112
class private1 {
113113
}
114-
class public1 {
114+
export class public1 {
115115
}
116-
function foo3(param: private1): void;
117-
function foo4(param?: private1): void;
118-
function foo13(param: public1): void;
119-
function foo14(param?: public1): void;
116+
export function foo3(param: private1): void;
117+
export function foo4(param?: private1): void;
118+
export function foo13(param: public1): void;
119+
export function foo14(param?: public1): void;
120120
module m2 {
121121
class public2 {
122122
}
123123
}
124-
function foo113(param: m2.public2): void;
125-
function foo114(param?: m2.public2): void;
124+
export function foo113(param: m2.public2): void;
125+
export function foo114(param?: m2.public2): void;
126+
export {};
126127
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,17 @@ var m;
129129
declare module m {
130130
class private1 {
131131
}
132-
class public1 {
132+
export class public1 {
133133
}
134-
function foo3(): private1;
135-
function foo4(): private1;
136-
function foo13(): public1;
137-
function foo14(): public1;
134+
export function foo3(): private1;
135+
export function foo4(): private1;
136+
export function foo13(): public1;
137+
export function foo14(): public1;
138138
module m2 {
139139
class public2 {
140140
}
141141
}
142-
function foo113(): m2.public2;
143-
function foo114(): m2.public2;
142+
export function foo113(): m2.public2;
143+
export function foo114(): m2.public2;
144+
export {};
144145
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorTypeAlias.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,12 @@ interface Window {
9595
}
9696
declare module M {
9797
type W = Window | string;
98-
module N {
98+
export module N {
9999
class Window {
100100
}
101101
var p: W;
102102
}
103+
export {};
103104
}
104105
declare module M1 {
105106
type W = Window | string;
@@ -118,7 +119,8 @@ declare module M2 {
118119
class public1 {
119120
}
120121
}
121-
type t2 = private1;
122-
type t12 = public1;
123-
type t112 = m3.public1;
122+
export type t2 = private1;
123+
export type t12 = public1;
124+
export type t112 = m3.public1;
125+
export {};
124126
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorTypeLiteral.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,29 +71,30 @@ declare module m {
7171
class public1 {
7272
}
7373
}
74-
var x: {
74+
export var x: {
7575
x: private1;
7676
y: m2.public1;
7777
(): m2.public1[];
7878
method(): private1;
7979
[n: number]: private1;
8080
[s: string]: m2.public1;
8181
};
82-
var x2: {
82+
export var x2: {
8383
x: private1;
8484
y: m2.public1;
8585
method(): private1;
8686
};
87-
var x3: {
87+
export var x3: {
8888
(): m2.public1[];
8989
[s: string]: m2.public1;
9090
[n: number]: private1;
9191
x: private1;
9292
y: m2.public1;
9393
method(): private1;
9494
};
95-
var y: (a: private1) => m2.public1;
96-
var y2: (a: private1) => m2.public1;
97-
var z: new (a: private1) => m2.public1;
98-
var z2: new (a: private1) => m2.public1;
95+
export var y: (a: private1) => m2.public1;
96+
export var y2: (a: private1) => m2.public1;
97+
export var z: new (a: private1) => m2.public1;
98+
export var z2: new (a: private1) => m2.public1;
99+
export {};
99100
}

tests/baselines/reference/declFileTypeAnnotationVisibilityErrorVariableDeclaration.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,17 @@ var m;
7272
declare module m {
7373
class private1 {
7474
}
75-
class public1 {
75+
export class public1 {
7676
}
77-
var k: private1;
78-
var l: private1;
79-
var k2: public1;
80-
var l2: public1;
77+
export var k: private1;
78+
export var l: private1;
79+
export var k2: public1;
80+
export var l2: public1;
8181
module m2 {
8282
class public2 {
8383
}
8484
}
85-
var k3: m2.public2;
86-
var l3: m2.public2;
85+
export var k3: m2.public2;
86+
export var l3: m2.public2;
87+
export {};
8788
}

0 commit comments

Comments
 (0)