typescript 4.7.0-dev.20220223 → 4.7.0-dev.20220226

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.7";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20220223";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220226";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -21878,6 +21878,17 @@ var ts;
21878
21878
  return node;
21879
21879
  }
21880
21880
  ts.ignoreSourceNewlines = ignoreSourceNewlines;
21881
+ function setTypeNode(node, type) {
21882
+ var emitNode = getOrCreateEmitNode(node);
21883
+ emitNode.typeNode = type;
21884
+ return node;
21885
+ }
21886
+ ts.setTypeNode = setTypeNode;
21887
+ function getTypeNode(node) {
21888
+ var _a;
21889
+ return (_a = node.emitNode) === null || _a === void 0 ? void 0 : _a.typeNode;
21890
+ }
21891
+ ts.getTypeNode = getTypeNode;
21881
21892
  })(ts || (ts = {}));
21882
21893
  var ts;
21883
21894
  (function (ts) {
@@ -27005,10 +27016,10 @@ var ts;
27005
27016
  setDecoratorContext(false);
27006
27017
  }
27007
27018
  var pos = getNodePos();
27008
- var expr = parseAssignmentExpressionOrHigher();
27019
+ var expr = parseAssignmentExpressionOrHigher(false);
27009
27020
  var operatorToken;
27010
27021
  while ((operatorToken = parseOptionalToken(27))) {
27011
- expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(), pos);
27022
+ expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(false), pos);
27012
27023
  }
27013
27024
  if (saveDecoratorContext) {
27014
27025
  setDecoratorContext(true);
@@ -27016,23 +27027,23 @@ var ts;
27016
27027
  return expr;
27017
27028
  }
27018
27029
  function parseInitializer() {
27019
- return parseOptional(63) ? parseAssignmentExpressionOrHigher() : undefined;
27030
+ return parseOptional(63) ? parseAssignmentExpressionOrHigher(false) : undefined;
27020
27031
  }
27021
- function parseAssignmentExpressionOrHigher() {
27032
+ function parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction) {
27022
27033
  if (isYieldExpression()) {
27023
27034
  return parseYieldExpression();
27024
27035
  }
27025
- var arrowExpression = tryParseParenthesizedArrowFunctionExpression() || tryParseAsyncSimpleArrowFunctionExpression();
27036
+ var arrowExpression = tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction);
27026
27037
  if (arrowExpression) {
27027
27038
  return arrowExpression;
27028
27039
  }
27029
27040
  var pos = getNodePos();
27030
27041
  var expr = parseBinaryExpressionOrHigher(0);
27031
27042
  if (expr.kind === 79 && token() === 38) {
27032
- return parseSimpleArrowFunctionExpression(pos, expr, undefined);
27043
+ return parseSimpleArrowFunctionExpression(pos, expr, disallowReturnTypeInArrowFunction, undefined);
27033
27044
  }
27034
27045
  if (ts.isLeftHandSideExpression(expr) && ts.isAssignmentOperator(reScanGreaterToken())) {
27035
- return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(), pos);
27046
+ return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction), pos);
27036
27047
  }
27037
27048
  return parseConditionalExpressionRest(expr, pos);
27038
27049
  }
@@ -27054,30 +27065,30 @@ var ts;
27054
27065
  nextToken();
27055
27066
  if (!scanner.hasPrecedingLineBreak() &&
27056
27067
  (token() === 41 || isStartOfExpression())) {
27057
- return finishNode(factory.createYieldExpression(parseOptionalToken(41), parseAssignmentExpressionOrHigher()), pos);
27068
+ return finishNode(factory.createYieldExpression(parseOptionalToken(41), parseAssignmentExpressionOrHigher(false)), pos);
27058
27069
  }
27059
27070
  else {
27060
27071
  return finishNode(factory.createYieldExpression(undefined, undefined), pos);
27061
27072
  }
27062
27073
  }
27063
- function parseSimpleArrowFunctionExpression(pos, identifier, asyncModifier) {
27074
+ function parseSimpleArrowFunctionExpression(pos, identifier, disallowReturnTypeInArrowFunction, asyncModifier) {
27064
27075
  ts.Debug.assert(token() === 38, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
27065
27076
  var parameter = factory.createParameterDeclaration(undefined, undefined, undefined, identifier, undefined, undefined, undefined);
27066
27077
  finishNode(parameter, identifier.pos);
27067
27078
  var parameters = createNodeArray([parameter], parameter.pos, parameter.end);
27068
27079
  var equalsGreaterThanToken = parseExpectedToken(38);
27069
- var body = parseArrowFunctionExpressionBody(!!asyncModifier);
27080
+ var body = parseArrowFunctionExpressionBody(!!asyncModifier, disallowReturnTypeInArrowFunction);
27070
27081
  var node = factory.createArrowFunction(asyncModifier, undefined, parameters, undefined, equalsGreaterThanToken, body);
27071
27082
  return addJSDocComment(finishNode(node, pos));
27072
27083
  }
27073
- function tryParseParenthesizedArrowFunctionExpression() {
27084
+ function tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
27074
27085
  var triState = isParenthesizedArrowFunctionExpression();
27075
27086
  if (triState === 0) {
27076
27087
  return undefined;
27077
27088
  }
27078
27089
  return triState === 1 ?
27079
- parseParenthesizedArrowFunctionExpression(true) :
27080
- tryParse(parsePossibleParenthesizedArrowFunctionExpression);
27090
+ parseParenthesizedArrowFunctionExpression(true, false) :
27091
+ tryParse(function () { return parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction); });
27081
27092
  }
27082
27093
  function isParenthesizedArrowFunctionExpression() {
27083
27094
  if (token() === 20 || token() === 29 || token() === 131) {
@@ -27171,24 +27182,24 @@ var ts;
27171
27182
  return 2;
27172
27183
  }
27173
27184
  }
27174
- function parsePossibleParenthesizedArrowFunctionExpression() {
27185
+ function parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
27175
27186
  var tokenPos = scanner.getTokenPos();
27176
27187
  if (notParenthesizedArrow === null || notParenthesizedArrow === void 0 ? void 0 : notParenthesizedArrow.has(tokenPos)) {
27177
27188
  return undefined;
27178
27189
  }
27179
- var result = parseParenthesizedArrowFunctionExpression(false);
27190
+ var result = parseParenthesizedArrowFunctionExpression(false, disallowReturnTypeInArrowFunction);
27180
27191
  if (!result) {
27181
27192
  (notParenthesizedArrow || (notParenthesizedArrow = new ts.Set())).add(tokenPos);
27182
27193
  }
27183
27194
  return result;
27184
27195
  }
27185
- function tryParseAsyncSimpleArrowFunctionExpression() {
27196
+ function tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
27186
27197
  if (token() === 131) {
27187
27198
  if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1) {
27188
27199
  var pos = getNodePos();
27189
27200
  var asyncModifier = parseModifiersForArrowFunction();
27190
27201
  var expr = parseBinaryExpressionOrHigher(0);
27191
- return parseSimpleArrowFunctionExpression(pos, expr, asyncModifier);
27202
+ return parseSimpleArrowFunctionExpression(pos, expr, disallowReturnTypeInArrowFunction, asyncModifier);
27192
27203
  }
27193
27204
  }
27194
27205
  return undefined;
@@ -27206,7 +27217,7 @@ var ts;
27206
27217
  }
27207
27218
  return 0;
27208
27219
  }
27209
- function parseParenthesizedArrowFunctionExpression(allowAmbiguity) {
27220
+ function parseParenthesizedArrowFunctionExpression(allowAmbiguity, disallowReturnTypeInArrowFunction) {
27210
27221
  var pos = getNodePos();
27211
27222
  var hasJSDoc = hasPrecedingJSDocComment();
27212
27223
  var modifiers = parseModifiersForArrowFunction();
@@ -27225,6 +27236,9 @@ var ts;
27225
27236
  return undefined;
27226
27237
  }
27227
27238
  }
27239
+ if (disallowReturnTypeInArrowFunction && token() === 58) {
27240
+ return undefined;
27241
+ }
27228
27242
  var type = parseReturnType(58, false);
27229
27243
  if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) {
27230
27244
  return undefined;
@@ -27240,12 +27254,12 @@ var ts;
27240
27254
  var lastToken = token();
27241
27255
  var equalsGreaterThanToken = parseExpectedToken(38);
27242
27256
  var body = (lastToken === 38 || lastToken === 18)
27243
- ? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier))
27257
+ ? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier), disallowReturnTypeInArrowFunction)
27244
27258
  : parseIdentifier();
27245
27259
  var node = factory.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body);
27246
27260
  return withJSDoc(finishNode(node, pos), hasJSDoc);
27247
27261
  }
27248
- function parseArrowFunctionExpressionBody(isAsync) {
27262
+ function parseArrowFunctionExpressionBody(isAsync, disallowReturnTypeInArrowFunction) {
27249
27263
  if (token() === 18) {
27250
27264
  return parseFunctionBlock(isAsync ? 2 : 0);
27251
27265
  }
@@ -27259,8 +27273,8 @@ var ts;
27259
27273
  var savedTopLevel = topLevel;
27260
27274
  topLevel = false;
27261
27275
  var node = isAsync
27262
- ? doInAwaitContext(parseAssignmentExpressionOrHigher)
27263
- : doOutsideOfAwaitContext(parseAssignmentExpressionOrHigher);
27276
+ ? doInAwaitContext(function () { return parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction); })
27277
+ : doOutsideOfAwaitContext(function () { return parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction); });
27264
27278
  topLevel = savedTopLevel;
27265
27279
  return node;
27266
27280
  }
@@ -27270,8 +27284,8 @@ var ts;
27270
27284
  return leftOperand;
27271
27285
  }
27272
27286
  var colonToken;
27273
- return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher), colonToken = parseExpectedToken(58), ts.nodeIsPresent(colonToken)
27274
- ? parseAssignmentExpressionOrHigher()
27287
+ return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, function () { return parseAssignmentExpressionOrHigher(true); }), colonToken = parseExpectedToken(58), ts.nodeIsPresent(colonToken)
27288
+ ? parseAssignmentExpressionOrHigher(true)
27275
27289
  : createMissingNode(79, false, ts.Diagnostics._0_expected, ts.tokenToString(58))), pos);
27276
27290
  }
27277
27291
  function parseBinaryExpressionOrHigher(precedence) {
@@ -27942,13 +27956,13 @@ var ts;
27942
27956
  function parseSpreadElement() {
27943
27957
  var pos = getNodePos();
27944
27958
  parseExpected(25);
27945
- var expression = parseAssignmentExpressionOrHigher();
27959
+ var expression = parseAssignmentExpressionOrHigher(false);
27946
27960
  return finishNode(factory.createSpreadElement(expression), pos);
27947
27961
  }
27948
27962
  function parseArgumentOrArrayLiteralElement() {
27949
27963
  return token() === 25 ? parseSpreadElement() :
27950
27964
  token() === 27 ? finishNode(factory.createOmittedExpression(), getNodePos()) :
27951
- parseAssignmentExpressionOrHigher();
27965
+ parseAssignmentExpressionOrHigher(false);
27952
27966
  }
27953
27967
  function parseArgumentExpression() {
27954
27968
  return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
@@ -27965,7 +27979,7 @@ var ts;
27965
27979
  var pos = getNodePos();
27966
27980
  var hasJSDoc = hasPrecedingJSDocComment();
27967
27981
  if (parseOptionalToken(25)) {
27968
- var expression = parseAssignmentExpressionOrHigher();
27982
+ var expression = parseAssignmentExpressionOrHigher(false);
27969
27983
  return withJSDoc(finishNode(factory.createSpreadAssignment(expression), pos), hasJSDoc);
27970
27984
  }
27971
27985
  var decorators = parseDecorators();
@@ -27988,13 +28002,13 @@ var ts;
27988
28002
  var isShorthandPropertyAssignment = tokenIsIdentifier && (token() !== 58);
27989
28003
  if (isShorthandPropertyAssignment) {
27990
28004
  var equalsToken = parseOptionalToken(63);
27991
- var objectAssignmentInitializer = equalsToken ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined;
28005
+ var objectAssignmentInitializer = equalsToken ? allowInAnd(function () { return parseAssignmentExpressionOrHigher(false); }) : undefined;
27992
28006
  node = factory.createShorthandPropertyAssignment(name, objectAssignmentInitializer);
27993
28007
  node.equalsToken = equalsToken;
27994
28008
  }
27995
28009
  else {
27996
28010
  parseExpected(58);
27997
- var initializer = allowInAnd(parseAssignmentExpressionOrHigher);
28011
+ var initializer = allowInAnd(function () { return parseAssignmentExpressionOrHigher(false); });
27998
28012
  node = factory.createPropertyAssignment(name, initializer);
27999
28013
  }
28000
28014
  node.decorators = decorators;
@@ -28160,7 +28174,7 @@ var ts;
28160
28174
  }
28161
28175
  var node;
28162
28176
  if (awaitToken ? parseExpected(159) : parseOptional(159)) {
28163
- var expression = allowInAnd(parseAssignmentExpressionOrHigher);
28177
+ var expression = allowInAnd(function () { return parseAssignmentExpressionOrHigher(false); });
28164
28178
  parseExpected(21);
28165
28179
  node = factory.createForOfStatement(awaitToken, initializer, expression, parseStatement());
28166
28180
  }
@@ -29197,7 +29211,7 @@ var ts;
29197
29211
  var pos = getNodePos();
29198
29212
  var name = ts.tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(10);
29199
29213
  parseExpected(58);
29200
- var value = parseAssignmentExpressionOrHigher();
29214
+ var value = parseAssignmentExpressionOrHigher(false);
29201
29215
  return finishNode(factory.createAssertEntry(name, value), pos);
29202
29216
  }
29203
29217
  function parseAssertClause() {
@@ -29389,7 +29403,7 @@ var ts;
29389
29403
  else {
29390
29404
  parseExpected(88);
29391
29405
  }
29392
- var expression = parseAssignmentExpressionOrHigher();
29406
+ var expression = parseAssignmentExpressionOrHigher(false);
29393
29407
  parseSemicolon();
29394
29408
  setAwaitContext(savedAwaitContext);
29395
29409
  var node = factory.createExportAssignment(decorators, modifiers, isExportEquals, expression);
@@ -76721,7 +76735,11 @@ var ts;
76721
76735
  }
76722
76736
  }
76723
76737
  function visitVariableDeclaration(node) {
76724
- return factory.updateVariableDeclaration(node, ts.visitNode(node.name, visitor, ts.isBindingName), undefined, undefined, ts.visitNode(node.initializer, visitor, ts.isExpression));
76738
+ var updated = factory.updateVariableDeclaration(node, ts.visitNode(node.name, visitor, ts.isBindingName), undefined, undefined, ts.visitNode(node.initializer, visitor, ts.isExpression));
76739
+ if (node.type) {
76740
+ ts.setTypeNode(updated.name, node.type);
76741
+ }
76742
+ return updated;
76725
76743
  }
76726
76744
  function visitParenthesizedExpression(node) {
76727
76745
  var innerExpression = ts.skipOuterExpressions(node.expression, ~6);
@@ -91258,10 +91276,11 @@ var ts;
91258
91276
  writeTrailingSemicolon();
91259
91277
  }
91260
91278
  function emitVariableDeclaration(node) {
91279
+ var _a, _b, _c, _d, _e;
91261
91280
  emit(node.name);
91262
91281
  emit(node.exclamationToken);
91263
91282
  emitTypeAnnotation(node.type);
91264
- emitInitializer(node.initializer, node.type ? node.type.end : node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);
91283
+ emitInitializer(node.initializer, (_e = (_b = (_a = node.type) === null || _a === void 0 ? void 0 : _a.end) !== null && _b !== void 0 ? _b : (_d = (_c = node.name.emitNode) === null || _c === void 0 ? void 0 : _c.typeNode) === null || _d === void 0 ? void 0 : _d.end) !== null && _e !== void 0 ? _e : node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);
91265
91284
  }
91266
91285
  function emitVariableDeclarationList(node) {
91267
91286
  writeKeyword(ts.isLet(node) ? "let" : ts.isVarConst(node) ? "const" : "var");
@@ -93056,6 +93075,10 @@ var ts;
93056
93075
  commentsDisabled = false;
93057
93076
  }
93058
93077
  emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);
93078
+ var typeNode = ts.getTypeNode(node);
93079
+ if (typeNode) {
93080
+ emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);
93081
+ }
93059
93082
  }
93060
93083
  function emitLeadingCommentsOfNode(node, emitFlags, pos, end) {
93061
93084
  enterComment();