Skip to content

Commit cfe7284

Browse files
committed
Merge branch 'master' into reduceIntersectionTypes
2 parents d25a6ec + 6c28da3 commit cfe7284

File tree

84 files changed

+2666
-1037
lines changed

Some content is hidden

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

84 files changed

+2666
-1037
lines changed

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@
3434
path = tests/cases/user/axios-src/axios-src
3535
url = https://github.com/axios/axios.git
3636
ignore = all
37+
[submodule "tests/cases/user/prettier/prettier"]
38+
path = tests/cases/user/prettier/prettier
39+
url = https://github.com/prettier/prettier.git
40+
ignore = all

package-lock.json

Lines changed: 670 additions & 892 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,12 @@
4848
"@types/q": "latest",
4949
"@types/run-sequence": "latest",
5050
"@types/through2": "latest",
51+
"@types/travis-fold": "latest",
5152
"@types/xml2js": "^0.4.0",
52-
"xml2js": "^0.4.19",
5353
"browser-resolve": "^1.11.2",
5454
"browserify": "latest",
5555
"chai": "latest",
56+
"chalk": "latest",
5657
"convert-source-map": "latest",
5758
"del": "latest",
5859
"gulp": "3.X",
@@ -77,9 +78,9 @@
7778
"through2": "latest",
7879
"travis-fold": "latest",
7980
"tslint": "latest",
81+
"typescript": "next",
8082
"vinyl": "latest",
81-
"chalk": "latest",
82-
"typescript": "next"
83+
"xml2js": "^0.4.19"
8384
},
8485
"scripts": {
8586
"pretest": "jake tests",

scripts/buildProtocol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ function writeProtocolFile(outputFile: string, protocolTs: string, typeScriptSer
178178
ts.sys.writeFile(outputFile, protocolDts);
179179

180180
if (diagnostics.length) {
181-
const flattenedDiagnostics = diagnostics.map(d => `${ts.flattenDiagnosticMessageText(d.messageText, "\n")} at ${d.file.fileName} line ${d.start}`).join("\n");
181+
const flattenedDiagnostics = diagnostics.map(d => `${ts.flattenDiagnosticMessageText(d.messageText, "\n")} at ${d.file ? d.file.fileName : "<unknown>"} line ${d.start}`).join("\n");
182182
throw new Error(`Unexpected errors during sanity check: ${flattenedDiagnostics}`);
183183
}
184184
}

scripts/types/ambient.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,3 @@ declare module "gulp-insert" {
1414
}
1515

1616
declare module "sorcery";
17-
declare module "travis-fold";

src/compiler/checker.ts

Lines changed: 130 additions & 16 deletions
Large diffs are not rendered by default.

src/compiler/emitter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,9 +1441,9 @@ namespace ts {
14411441

14421442
function emitElementAccessExpression(node: ElementAccessExpression) {
14431443
emitExpression(node.expression);
1444-
const openPos = emitTokenWithComment(SyntaxKind.OpenBracketToken, node.expression.end, writePunctuation, node);
1444+
emitTokenWithComment(SyntaxKind.OpenBracketToken, node.expression.end, writePunctuation, node);
14451445
emitExpression(node.argumentExpression);
1446-
emitTokenWithComment(SyntaxKind.CloseBracketToken, node.argumentExpression ? node.argumentExpression.end : openPos, writePunctuation, node);
1446+
emitTokenWithComment(SyntaxKind.CloseBracketToken, node.argumentExpression.end, writePunctuation, node);
14471447
}
14481448

14491449
function emitCallExpression(node: CallExpression) {

src/compiler/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3620,6 +3620,9 @@ namespace ts {
36203620
BooleanLike = Boolean | BooleanLiteral,
36213621
EnumLike = Enum | EnumLiteral,
36223622
ESSymbolLike = ESSymbol | UniqueESSymbol,
3623+
VoidLike = Void | Undefined,
3624+
/* @internal */
3625+
DisjointDomains = NonPrimitive | StringLike | NumberLike | BooleanLike | ESSymbolLike | VoidLike | Null,
36233626
UnionOrIntersection = Union | Intersection,
36243627
StructuredType = Object | Union | Intersection,
36253628
TypeVariable = TypeParameter | IndexedAccess,

src/compiler/utilities.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,7 +1889,13 @@ namespace ts {
18891889

18901890
export function getJSDocHost(node: JSDocTag): HasJSDoc {
18911891
while (node.parent.kind === SyntaxKind.JSDocTypeLiteral) {
1892-
node = node.parent.parent.parent as JSDocParameterTag;
1892+
if (node.parent.parent.kind === SyntaxKind.JSDocTypedefTag) {
1893+
node = node.parent.parent as JSDocTypedefTag;
1894+
}
1895+
else {
1896+
// node.parent.parent is a type expression, child of a parameter type
1897+
node = node.parent.parent.parent as JSDocParameterTag;
1898+
}
18931899
}
18941900
Debug.assert(node.parent!.kind === SyntaxKind.JSDocComment);
18951901
return node.parent!.parent!;
@@ -4025,12 +4031,14 @@ namespace ts {
40254031
}
40264032

40274033
/** Add a value to a set, and return true if it wasn't already present. */
4028-
export function addToSeen(seen: Map<true>, key: string | number): boolean {
4034+
export function addToSeen(seen: Map<true>, key: string | number): boolean;
4035+
export function addToSeen<T>(seen: Map<T>, key: string | number, value: T): boolean;
4036+
export function addToSeen<T>(seen: Map<T>, key: string | number, value: T = true as any): boolean {
40294037
key = String(key);
40304038
if (seen.has(key)) {
40314039
return false;
40324040
}
4033-
seen.set(key, true);
4041+
seen.set(key, value);
40344042
return true;
40354043
}
40364044

src/harness/harness.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -304,14 +304,13 @@ namespace Utils {
304304
o.containsParseError = true;
305305
}
306306

307-
ts.forEach(Object.getOwnPropertyNames(n), propertyName => {
307+
for (const propertyName of Object.getOwnPropertyNames(n) as ReadonlyArray<keyof ts.SourceFile | keyof ts.Identifier>) {
308308
switch (propertyName) {
309309
case "parent":
310310
case "symbol":
311311
case "locals":
312312
case "localSymbol":
313313
case "kind":
314-
case "semanticDiagnostics":
315314
case "id":
316315
case "nodeCount":
317316
case "symbolCount":
@@ -334,7 +333,6 @@ namespace Utils {
334333
}
335334
break;
336335

337-
case "referenceDiagnostics":
338336
case "parseDiagnostics":
339337
o[propertyName] = convertDiagnostics((<any>n)[propertyName]);
340338
break;
@@ -355,9 +353,7 @@ namespace Utils {
355353
default:
356354
o[propertyName] = (<any>n)[propertyName];
357355
}
358-
359-
return undefined;
360-
});
356+
}
361357

362358
return o;
363359
}

0 commit comments

Comments
 (0)