Skip to content

Commit e2e866c

Browse files
RyanCavanaughmrcrane
authored andcommitted
Update LKG
1 parent 406f248 commit e2e866c

File tree

6 files changed

+148
-47
lines changed

6 files changed

+148
-47
lines changed

lib/tsc.js

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
6060
var ts;
6161
(function (ts) {
6262
ts.versionMajorMinor = "3.1";
63-
ts.version = ts.versionMajorMinor + ".1";
63+
ts.version = ts.versionMajorMinor + ".2";
6464
})(ts || (ts = {}));
6565
(function (ts) {
6666
ts.emptyArray = [];
@@ -3621,6 +3621,7 @@ var ts;
36213621
Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: diag(2584, ts.DiagnosticCategory.Error, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584", "Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'."),
36223622
_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: diag(2585, ts.DiagnosticCategory.Error, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585", "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later."),
36233623
Enum_type_0_circularly_references_itself: diag(2586, ts.DiagnosticCategory.Error, "Enum_type_0_circularly_references_itself_2586", "Enum type '{0}' circularly references itself."),
3624+
JSDoc_type_0_circularly_references_itself: diag(2587, ts.DiagnosticCategory.Error, "JSDoc_type_0_circularly_references_itself_2587", "JSDoc type '{0}' circularly references itself."),
36243625
JSX_element_attributes_type_0_may_not_be_a_union_type: diag(2600, ts.DiagnosticCategory.Error, "JSX_element_attributes_type_0_may_not_be_a_union_type_2600", "JSX element attributes type '{0}' may not be a union type."),
36253626
The_return_type_of_a_JSX_element_constructor_must_return_an_object_type: diag(2601, ts.DiagnosticCategory.Error, "The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601", "The return type of a JSX element constructor must return an object type."),
36263627
JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: diag(2602, ts.DiagnosticCategory.Error, "JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602", "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),
@@ -26274,7 +26275,7 @@ var ts;
2627426275
}
2627526276
if (!result) {
2627626277
if (lastLocation) {
26277-
ts.Debug.assert(lastLocation.kind === 284);
26278+
ts.Debug.assert(lastLocation.kind === 277);
2627826279
if (lastLocation.commonJsModuleIndicator && name === "exports" && meaning & lastLocation.symbol.flags) {
2627926280
return lastLocation.symbol;
2628026281
}
@@ -27007,7 +27008,7 @@ var ts;
2700727008
return undefined;
2700827009
}
2700927010
function getCommonJsExportEquals(exported, moduleSymbol) {
27010-
if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports.size === 1 || exported.flags & 2097152) {
27011+
if (!exported || exported === unknownSymbol || moduleSymbol.exports.size === 1) {
2701127012
return exported;
2701227013
}
2701327014
var merged = cloneSymbol(exported);
@@ -32166,11 +32167,20 @@ var ts;
3216632167
return getTypeOfSymbol(symbol);
3216732168
}
3216832169
function getJSDocTypeReference(node, symbol, typeArguments) {
32170+
if (!pushTypeResolution(symbol, 6)) {
32171+
return errorType;
32172+
}
3216932173
var assignedType = getAssignedClassType(symbol);
3217032174
var valueType = getTypeOfSymbol(symbol);
3217132175
var referenceType = valueType.symbol && valueType.symbol !== symbol && !isInferredClassType(valueType) && getTypeReferenceTypeWorker(node, valueType.symbol, typeArguments);
32176+
if (!popTypeResolution()) {
32177+
getSymbolLinks(symbol).resolvedJSDocType = errorType;
32178+
error(node, ts.Diagnostics.JSDoc_type_0_circularly_references_itself, symbolToString(symbol));
32179+
return errorType;
32180+
}
3217232181
if (referenceType || assignedType) {
32173-
return (referenceType && assignedType ? getIntersectionType([assignedType, referenceType]) : referenceType || assignedType);
32182+
var type = (referenceType && assignedType ? getIntersectionType([assignedType, referenceType]) : referenceType || assignedType);
32183+
return getSymbolLinks(symbol).resolvedJSDocType = type;
3217432184
}
3217532185
}
3217632186
function getTypeReferenceTypeWorker(node, symbol, typeArguments) {
@@ -42112,11 +42122,17 @@ var ts;
4211242122
return result;
4211342123
}
4211442124
function isJSConstructor(node) {
42115-
if (node && ts.isInJSFile(node)) {
42125+
if (!node || !ts.isInJSFile(node)) {
42126+
return false;
42127+
}
42128+
var func = ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) ? node :
42129+
ts.isVariableDeclaration(node) && node.initializer && ts.isFunctionExpression(node.initializer) ? node.initializer :
42130+
undefined;
42131+
if (func) {
4211642132
if (ts.getJSDocClassTag(node))
4211742133
return true;
4211842134
var symbol = getSymbolOfNode(func);
42119-
return !!symbol && (symbol.members !== undefined || symbol.exports !== undefined && symbol.exports.get("prototype") !== undefined);
42135+
return !!symbol && symbol.members !== undefined;
4212042136
}
4212142137
return false;
4212242138
}
@@ -42148,7 +42164,7 @@ var ts;
4214842164
ts.isBinaryExpression(decl.parent) && getSymbolOfNode(decl.parent.left) ||
4214942165
ts.isVariableDeclaration(decl.parent) && getSymbolOfNode(decl.parent));
4215042166
var prototype = assignmentSymbol && assignmentSymbol.exports && assignmentSymbol.exports.get("prototype");
42151-
var init = prototype && getAssignedJSPrototype(prototype.valueDeclaration);
42167+
var init = prototype && prototype.valueDeclaration && getAssignedJSPrototype(prototype.valueDeclaration);
4215242168
return init ? checkExpression(init) : undefined;
4215342169
}
4215442170
function getAssignedJSPrototype(node) {

lib/tsserver.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ var ts;
8585
// If changing the text in this section, be sure to test `configureNightly` too.
8686
ts.versionMajorMinor = "3.4";
8787
/** The version of the TypeScript compiler release */
88-
ts.version = ts.versionMajorMinor + ".1";
88+
ts.version = ts.versionMajorMinor + ".2";
8989
})(ts || (ts = {}));
9090
(function (ts) {
9191
/* @internal */
@@ -5665,6 +5665,7 @@ var ts;
56655665
Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: diag(2584, ts.DiagnosticCategory.Error, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584", "Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'."),
56665666
_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: diag(2585, ts.DiagnosticCategory.Error, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585", "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later."),
56675667
Enum_type_0_circularly_references_itself: diag(2586, ts.DiagnosticCategory.Error, "Enum_type_0_circularly_references_itself_2586", "Enum type '{0}' circularly references itself."),
5668+
JSDoc_type_0_circularly_references_itself: diag(2587, ts.DiagnosticCategory.Error, "JSDoc_type_0_circularly_references_itself_2587", "JSDoc type '{0}' circularly references itself."),
56685669
JSX_element_attributes_type_0_may_not_be_a_union_type: diag(2600, ts.DiagnosticCategory.Error, "JSX_element_attributes_type_0_may_not_be_a_union_type_2600", "JSX element attributes type '{0}' may not be a union type."),
56695670
The_return_type_of_a_JSX_element_constructor_must_return_an_object_type: diag(2601, ts.DiagnosticCategory.Error, "The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601", "The return type of a JSX element constructor must return an object type."),
56705671
JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: diag(2602, ts.DiagnosticCategory.Error, "JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602", "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),
@@ -31406,6 +31407,7 @@ var ts;
3140631407
TypeSystemPropertyName[TypeSystemPropertyName["ResolvedReturnType"] = 3] = "ResolvedReturnType";
3140731408
TypeSystemPropertyName[TypeSystemPropertyName["ImmediateBaseConstraint"] = 4] = "ImmediateBaseConstraint";
3140831409
TypeSystemPropertyName[TypeSystemPropertyName["EnumTagType"] = 5] = "EnumTagType";
31410+
TypeSystemPropertyName[TypeSystemPropertyName["JSDocTypeReference"] = 6] = "JSDocTypeReference";
3140931411
})(TypeSystemPropertyName || (TypeSystemPropertyName = {}));
3141031412
var CheckMode;
3141131413
(function (CheckMode) {
@@ -32186,7 +32188,7 @@ var ts;
3218632188
}
3218732189
if (!result) {
3218832190
if (lastLocation) {
32189-
ts.Debug.assert(lastLocation.kind === 284 /* SourceFile */);
32191+
ts.Debug.assert(lastLocation.kind === 277 /* SourceFile */);
3219032192
if (lastLocation.commonJsModuleIndicator && name === "exports" && meaning & lastLocation.symbol.flags) {
3219132193
return lastLocation.symbol;
3219232194
}
@@ -33018,7 +33020,7 @@ var ts;
3301833020
return undefined;
3301933021
}
3302033022
function getCommonJsExportEquals(exported, moduleSymbol) {
33021-
if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports.size === 1 || exported.flags & 2097152 /* Alias */) {
33023+
if (!exported || exported === unknownSymbol || moduleSymbol.exports.size === 1) {
3302233024
return exported;
3302333025
}
3302433026
var merged = cloneSymbol(exported);
@@ -38809,7 +38811,7 @@ var ts;
3880938811
if (type) {
3881038812
return type;
3881138813
}
38812-
// JS are 'string' or 'number', not an enum type.
38814+
// JS enums are 'string' or 'number', not an enum type.
3881338815
var enumTag = ts.isInJSFile(node) && symbol.valueDeclaration && ts.getJSDocEnumTag(symbol.valueDeclaration);
3881438816
if (enumTag) {
3881538817
var links = getNodeLinks(enumTag);
@@ -38847,12 +38849,21 @@ var ts;
3884738849
* the type of this reference is just the type of the value we resolved to.
3884838850
*/
3884938851
function getJSDocTypeReference(node, symbol, typeArguments) {
38852+
if (!pushTypeResolution(symbol, 6 /* JSDocTypeReference */)) {
38853+
return errorType;
38854+
}
3885038855
var assignedType = getAssignedClassType(symbol);
3885138856
var valueType = getTypeOfSymbol(symbol);
3885238857
var referenceType = valueType.symbol && valueType.symbol !== symbol && !isInferredClassType(valueType) && getTypeReferenceTypeWorker(node, valueType.symbol, typeArguments);
38858+
if (!popTypeResolution()) {
38859+
getSymbolLinks(symbol).resolvedJSDocType = errorType;
38860+
error(node, ts.Diagnostics.JSDoc_type_0_circularly_references_itself, symbolToString(symbol));
38861+
return errorType;
38862+
}
3885338863
if (referenceType || assignedType) {
3885438864
// TODO: GH#18217 (should the `|| assignedType` be at a lower precedence?)
38855-
return (referenceType && assignedType ? getIntersectionType([assignedType, referenceType]) : referenceType || assignedType);
38865+
var type = (referenceType && assignedType ? getIntersectionType([assignedType, referenceType]) : referenceType || assignedType);
38866+
return getSymbolLinks(symbol).resolvedJSDocType = type;
3885638867
}
3885738868
}
3885838869
function getTypeReferenceTypeWorker(node, symbol, typeArguments) {
@@ -50497,13 +50508,19 @@ var ts;
5049750508
* file.
5049850509
*/
5049950510
function isJSConstructor(node) {
50500-
if (node && ts.isInJSFile(node)) {
50511+
if (!node || !ts.isInJSFile(node)) {
50512+
return false;
50513+
}
50514+
var func = ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) ? node :
50515+
ts.isVariableDeclaration(node) && node.initializer && ts.isFunctionExpression(node.initializer) ? node.initializer :
50516+
undefined;
50517+
if (func) {
5050150518
// If the node has a @class tag, treat it like a constructor.
5050250519
if (ts.getJSDocClassTag(node))
5050350520
return true;
5050450521
// If the symbol of the node has members, treat it like a constructor.
5050550522
var symbol = getSymbolOfNode(func);
50506-
return !!symbol && (symbol.members !== undefined || symbol.exports !== undefined && symbol.exports.get("prototype") !== undefined);
50523+
return !!symbol && symbol.members !== undefined;
5050750524
}
5050850525
return false;
5050950526
}
@@ -50535,7 +50552,7 @@ var ts;
5053550552
ts.isBinaryExpression(decl.parent) && getSymbolOfNode(decl.parent.left) ||
5053650553
ts.isVariableDeclaration(decl.parent) && getSymbolOfNode(decl.parent));
5053750554
var prototype = assignmentSymbol && assignmentSymbol.exports && assignmentSymbol.exports.get("prototype");
50538-
var init = prototype && getAssignedJSPrototype(prototype.valueDeclaration);
50555+
var init = prototype && prototype.valueDeclaration && getAssignedJSPrototype(prototype.valueDeclaration);
5053950556
return init ? checkExpression(init) : undefined;
5054050557
}
5054150558
function getAssignedJSPrototype(node) {

0 commit comments

Comments
 (0)