Skip to content

Commit 851e553

Browse files
committed
Fix reordering files when the override method is called by super class.
1 parent 47a27a1 commit 851e553

13 files changed

+338
-48
lines changed

lib/lib.esnext.promise.d.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*! *****************************************************************************
2+
Copyright (c) Microsoft Corporation. All rights reserved.
3+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4+
this file except in compliance with the License. You may obtain a copy of the
5+
License at http://www.apache.org/licenses/LICENSE-2.0
6+
7+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10+
MERCHANTABLITY OR NON-INFRINGEMENT.
11+
12+
See the Apache Version 2.0 License for specific language governing permissions
13+
and limitations under the License.
14+
***************************************************************************** */
15+
16+
17+
18+
/// <reference no-default-lib="true"/>
19+
20+
21+
/**
22+
* Represents the completion of an asynchronous operation
23+
*/
24+
interface Promise<T> {
25+
/**
26+
* Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
27+
* resolved value cannot be modified from the callback.
28+
* @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
29+
* @returns A Promise for the completion of the callback.
30+
*/
31+
finally(onfinally?: (() => void) | undefined | null): Promise<T>
32+
}

lib/tsc.js

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ var ts;
6161
(function (ts) {
6262
ts.versionMajorMinor = "3.1";
6363
ts.version = ts.versionMajorMinor + ".3";
64-
ts.version_plus = "3.1.3";
64+
ts.version_plus = "3.1.4";
6565
})(ts || (ts = {}));
6666
(function (ts) {
6767
ts.emptyArray = [];
@@ -64648,6 +64648,7 @@ var ts;
6464864648
var dependencyMap;
6464964649
var pathWeightMap;
6465064650
var visitedBlocks;
64651+
var calledMethods = [];
6465164652
function createMap() {
6465264653
var map = Object.create(null);
6465364654
map["__"] = undefined;
@@ -65129,10 +65130,13 @@ var ts;
6512965130
continue;
6513065131
}
6513165132
addDependency(callerFileName, sourceFile.fileName);
65132-
if (declaration.kind === 237 ||
65133-
declaration.kind === 154) {
65133+
if (declaration.kind === 237) {
6513465134
visitBlock(declaration.body);
6513565135
}
65136+
else if (declaration.kind === 154) {
65137+
visitBlock(declaration.body);
65138+
calledMethods.push(declaration);
65139+
}
6513665140
else if (declaration.kind === 238) {
6513765141
checkClassInstantiation(declaration);
6513865142
}
@@ -65186,15 +65190,33 @@ var ts;
6518665190
}
6518765191
}
6518865192
function checkClassInstantiation(node) {
65193+
var superMethodNames = [];
65194+
var superClass = ts.getClassExtendsHeritageElement(node);
65195+
if (superClass) {
65196+
var type = checker.getTypeAtLocation(superClass);
65197+
if (type && type.symbol) {
65198+
var declaration = ts.getDeclarationOfKind(type.symbol, 238);
65199+
if (declaration) {
65200+
superMethodNames = checkClassInstantiation(declaration);
65201+
}
65202+
}
65203+
}
6518965204
var members = node.members;
6519065205
if (!members) {
65191-
return;
65206+
return [];
6519265207
}
65208+
var index = calledMethods.length;
6519365209
for (var _i = 0, members_8 = members; _i < members_8.length; _i++) {
6519465210
var member = members_8[_i];
6519565211
if (ts.hasModifier(member, 32)) {
6519665212
continue;
6519765213
}
65214+
if (member.kind === 154) {
65215+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(member.name));
65216+
if (superMethodNames.indexOf(methodName) != -1) {
65217+
visitBlock(member.body);
65218+
}
65219+
}
6519865220
if (member.kind === 152) {
6519965221
var property = member;
6520065222
visitExpression(property.initializer);
@@ -65204,6 +65226,21 @@ var ts;
6520465226
visitBlock(constructor.body);
6520565227
}
6520665228
}
65229+
var methodNames = [];
65230+
for (var i = index; i < calledMethods.length; i++) {
65231+
var method = calledMethods[i];
65232+
for (var _a = 0, members_9 = members; _a < members_9.length; _a++) {
65233+
var memeber = members_9[_a];
65234+
if (memeber === method) {
65235+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(method.name));
65236+
methodNames.push(methodName);
65237+
}
65238+
}
65239+
}
65240+
if (index == 0) {
65241+
calledMethods.length = 0;
65242+
}
65243+
return methodNames;
6520765244
}
6520865245
function visitBlock(block) {
6520965246
if (!block || visitedBlocks.indexOf(block) != -1) {

lib/tsserver.js

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ var ts;
8989
ts.versionMajorMinor = "3.1";
9090
/** The version of the TypeScript compiler release */
9191
ts.version = ts.versionMajorMinor + ".3";
92-
ts.version_plus = "3.1.3";
92+
ts.version_plus = "3.1.4";
9393
})(ts || (ts = {}));
9494
(function (ts) {
9595
/* @internal */
@@ -79921,6 +79921,7 @@ var ts;
7992179921
var dependencyMap;
7992279922
var pathWeightMap;
7992379923
var visitedBlocks;
79924+
var calledMethods = [];
7992479925
function createMap() {
7992579926
var map = Object.create(null);
7992679927
// Using 'delete' on an object causes V8 to put the object in dictionary mode.
@@ -80411,10 +80412,13 @@ var ts;
8041180412
continue;
8041280413
}
8041380414
addDependency(callerFileName, sourceFile.fileName);
80414-
if (declaration.kind === 237 /* FunctionDeclaration */ ||
80415-
declaration.kind === 154 /* MethodDeclaration */) {
80415+
if (declaration.kind === 237 /* FunctionDeclaration */) {
8041680416
visitBlock(declaration.body);
8041780417
}
80418+
else if (declaration.kind === 154 /* MethodDeclaration */) {
80419+
visitBlock(declaration.body);
80420+
calledMethods.push(declaration);
80421+
}
8041880422
else if (declaration.kind === 238 /* ClassDeclaration */) {
8041980423
checkClassInstantiation(declaration);
8042080424
}
@@ -80468,15 +80472,33 @@ var ts;
8046880472
}
8046980473
}
8047080474
function checkClassInstantiation(node) {
80475+
var superMethodNames = [];
80476+
var superClass = ts.getClassExtendsHeritageElement(node);
80477+
if (superClass) {
80478+
var type = checker.getTypeAtLocation(superClass);
80479+
if (type && type.symbol) {
80480+
var declaration = ts.getDeclarationOfKind(type.symbol, 238 /* ClassDeclaration */);
80481+
if (declaration) {
80482+
superMethodNames = checkClassInstantiation(declaration);
80483+
}
80484+
}
80485+
}
8047180486
var members = node.members;
8047280487
if (!members) {
80473-
return;
80488+
return [];
8047480489
}
80490+
var index = calledMethods.length;
8047580491
for (var _i = 0, members_8 = members; _i < members_8.length; _i++) {
8047680492
var member = members_8[_i];
8047780493
if (ts.hasModifier(member, 32 /* Static */)) {
8047880494
continue;
8047980495
}
80496+
if (member.kind === 154 /* MethodDeclaration */) { // called by super class.
80497+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(member.name));
80498+
if (superMethodNames.indexOf(methodName) != -1) {
80499+
visitBlock(member.body);
80500+
}
80501+
}
8048080502
if (member.kind === 152 /* PropertyDeclaration */) {
8048180503
var property = member;
8048280504
visitExpression(property.initializer);
@@ -80486,6 +80508,21 @@ var ts;
8048680508
visitBlock(constructor.body);
8048780509
}
8048880510
}
80511+
var methodNames = [];
80512+
for (var i = index; i < calledMethods.length; i++) {
80513+
var method = calledMethods[i];
80514+
for (var _a = 0, members_9 = members; _a < members_9.length; _a++) {
80515+
var memeber = members_9[_a];
80516+
if (memeber === method) {
80517+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(method.name));
80518+
methodNames.push(methodName);
80519+
}
80520+
}
80521+
}
80522+
if (index == 0) {
80523+
calledMethods.length = 0;
80524+
}
80525+
return methodNames;
8048980526
}
8049080527
function visitBlock(block) {
8049180528
if (!block || visitedBlocks.indexOf(block) != -1) {

lib/tsserverlibrary.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ declare namespace ts {
1717
const versionMajorMinor = "3.1";
1818
/** The version of the TypeScript compiler release */
1919
const version: string;
20-
const version_plus = "3.1.3";
20+
const version_plus = "3.1.4";
2121
}
2222
declare namespace ts {
2323
/**

lib/tsserverlibrary.js

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ var ts;
8585
ts.versionMajorMinor = "3.1";
8686
/** The version of the TypeScript compiler release */
8787
ts.version = ts.versionMajorMinor + ".3";
88-
ts.version_plus = "3.1.3";
88+
ts.version_plus = "3.1.4";
8989
})(ts || (ts = {}));
9090
(function (ts) {
9191
/* @internal */
@@ -79917,6 +79917,7 @@ var ts;
7991779917
var dependencyMap;
7991879918
var pathWeightMap;
7991979919
var visitedBlocks;
79920+
var calledMethods = [];
7992079921
function createMap() {
7992179922
var map = Object.create(null);
7992279923
// Using 'delete' on an object causes V8 to put the object in dictionary mode.
@@ -80407,10 +80408,13 @@ var ts;
8040780408
continue;
8040880409
}
8040980410
addDependency(callerFileName, sourceFile.fileName);
80410-
if (declaration.kind === 237 /* FunctionDeclaration */ ||
80411-
declaration.kind === 154 /* MethodDeclaration */) {
80411+
if (declaration.kind === 237 /* FunctionDeclaration */) {
8041280412
visitBlock(declaration.body);
8041380413
}
80414+
else if (declaration.kind === 154 /* MethodDeclaration */) {
80415+
visitBlock(declaration.body);
80416+
calledMethods.push(declaration);
80417+
}
8041480418
else if (declaration.kind === 238 /* ClassDeclaration */) {
8041580419
checkClassInstantiation(declaration);
8041680420
}
@@ -80464,15 +80468,33 @@ var ts;
8046480468
}
8046580469
}
8046680470
function checkClassInstantiation(node) {
80471+
var superMethodNames = [];
80472+
var superClass = ts.getClassExtendsHeritageElement(node);
80473+
if (superClass) {
80474+
var type = checker.getTypeAtLocation(superClass);
80475+
if (type && type.symbol) {
80476+
var declaration = ts.getDeclarationOfKind(type.symbol, 238 /* ClassDeclaration */);
80477+
if (declaration) {
80478+
superMethodNames = checkClassInstantiation(declaration);
80479+
}
80480+
}
80481+
}
8046780482
var members = node.members;
8046880483
if (!members) {
80469-
return;
80484+
return [];
8047080485
}
80486+
var index = calledMethods.length;
8047180487
for (var _i = 0, members_8 = members; _i < members_8.length; _i++) {
8047280488
var member = members_8[_i];
8047380489
if (ts.hasModifier(member, 32 /* Static */)) {
8047480490
continue;
8047580491
}
80492+
if (member.kind === 154 /* MethodDeclaration */) { // called by super class.
80493+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(member.name));
80494+
if (superMethodNames.indexOf(methodName) != -1) {
80495+
visitBlock(member.body);
80496+
}
80497+
}
8047680498
if (member.kind === 152 /* PropertyDeclaration */) {
8047780499
var property = member;
8047880500
visitExpression(property.initializer);
@@ -80482,6 +80504,21 @@ var ts;
8048280504
visitBlock(constructor.body);
8048380505
}
8048480506
}
80507+
var methodNames = [];
80508+
for (var i = index; i < calledMethods.length; i++) {
80509+
var method = calledMethods[i];
80510+
for (var _a = 0, members_9 = members; _a < members_9.length; _a++) {
80511+
var memeber = members_9[_a];
80512+
if (memeber === method) {
80513+
var methodName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(method.name));
80514+
methodNames.push(methodName);
80515+
}
80516+
}
80517+
}
80518+
if (index == 0) {
80519+
calledMethods.length = 0;
80520+
}
80521+
return methodNames;
8048580522
}
8048680523
function visitBlock(block) {
8048780524
if (!block || visitedBlocks.indexOf(block) != -1) {
@@ -111676,15 +111713,15 @@ var ts;
111676111713
return checker.createArrayType(recur(usageContext.numberIndexContext));
111677111714
}
111678111715
else if (usageContext.properties || usageContext.callContexts || usageContext.constructContexts || usageContext.stringIndexContext) {
111679-
var members_9 = ts.createUnderscoreEscapedMap();
111716+
var members_10 = ts.createUnderscoreEscapedMap();
111680111717
var callSignatures = [];
111681111718
var constructSignatures = [];
111682111719
var stringIndexInfo = void 0;
111683111720
if (usageContext.properties) {
111684111721
usageContext.properties.forEach(function (context, name) {
111685111722
var symbol = checker.createSymbol(4 /* Property */, name);
111686111723
symbol.type = recur(context);
111687-
members_9.set(name, symbol);
111724+
members_10.set(name, symbol);
111688111725
});
111689111726
}
111690111727
if (usageContext.callContexts) {
@@ -111702,7 +111739,7 @@ var ts;
111702111739
if (usageContext.stringIndexContext) {
111703111740
stringIndexInfo = checker.createIndexInfo(recur(usageContext.stringIndexContext), /*isReadonly*/ false);
111704111741
}
111705-
return checker.createAnonymousType(/*symbol*/ undefined, members_9, callSignatures, constructSignatures, stringIndexInfo, /*numberIndexInfo*/ undefined); // TODO: GH#18217
111742+
return checker.createAnonymousType(/*symbol*/ undefined, members_10, callSignatures, constructSignatures, stringIndexInfo, /*numberIndexInfo*/ undefined); // TODO: GH#18217
111706111743
}
111707111744
else {
111708111745
return undefined;
@@ -113681,8 +113718,8 @@ var ts;
113681113718
ts.Debug.assert(members.length > 0); // There must be at least one child, since we extracted from one.
113682113719
var prevMember;
113683113720
var allProperties = true;
113684-
for (var _i = 0, members_10 = members; _i < members_10.length; _i++) {
113685-
var member = members_10[_i];
113721+
for (var _i = 0, members_11 = members; _i < members_11.length; _i++) {
113722+
var member = members_11[_i];
113686113723
if (member.pos > maxPos) {
113687113724
return prevMember || members[0];
113688113725
}

lib/typescript.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ declare namespace ts {
1717
const versionMajorMinor = "3.1";
1818
/** The version of the TypeScript compiler release */
1919
const version: string;
20-
const version_plus = "3.1.3";
20+
const version_plus = "3.1.4";
2121
}
2222
declare namespace ts {
2323
/**

0 commit comments

Comments
 (0)