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 +58 -35
- package/lib/tsserver.js +97 -35
- package/lib/tsserverlibrary.d.ts +6 -0
- package/lib/tsserverlibrary.js +97 -35
- package/lib/typescript.d.ts +6 -0
- package/lib/typescript.js +97 -35
- package/lib/typescriptServices.d.ts +6 -0
- package/lib/typescriptServices.js +97 -35
- package/lib/typingsInstaller.js +74 -35
- package/package.json +1 -1
package/lib/typescript.js
CHANGED
|
@@ -294,7 +294,7 @@ var ts;
|
|
|
294
294
|
// The following is baselined as a literal template type without intervention
|
|
295
295
|
/** The version of the TypeScript compiler release */
|
|
296
296
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
297
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
297
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220226";
|
|
298
298
|
/* @internal */
|
|
299
299
|
var Comparison;
|
|
300
300
|
(function (Comparison) {
|
|
@@ -27384,6 +27384,19 @@ var ts;
|
|
|
27384
27384
|
return node;
|
|
27385
27385
|
}
|
|
27386
27386
|
ts.ignoreSourceNewlines = ignoreSourceNewlines;
|
|
27387
|
+
/* @internal */
|
|
27388
|
+
function setTypeNode(node, type) {
|
|
27389
|
+
var emitNode = getOrCreateEmitNode(node);
|
|
27390
|
+
emitNode.typeNode = type;
|
|
27391
|
+
return node;
|
|
27392
|
+
}
|
|
27393
|
+
ts.setTypeNode = setTypeNode;
|
|
27394
|
+
/* @internal */
|
|
27395
|
+
function getTypeNode(node) {
|
|
27396
|
+
var _a;
|
|
27397
|
+
return (_a = node.emitNode) === null || _a === void 0 ? void 0 : _a.typeNode;
|
|
27398
|
+
}
|
|
27399
|
+
ts.getTypeNode = getTypeNode;
|
|
27387
27400
|
})(ts || (ts = {}));
|
|
27388
27401
|
/* @internal */
|
|
27389
27402
|
var ts;
|
|
@@ -33654,10 +33667,10 @@ var ts;
|
|
|
33654
33667
|
setDecoratorContext(/*val*/ false);
|
|
33655
33668
|
}
|
|
33656
33669
|
var pos = getNodePos();
|
|
33657
|
-
var expr = parseAssignmentExpressionOrHigher();
|
|
33670
|
+
var expr = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
33658
33671
|
var operatorToken;
|
|
33659
33672
|
while ((operatorToken = parseOptionalToken(27 /* CommaToken */))) {
|
|
33660
|
-
expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(), pos);
|
|
33673
|
+
expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false), pos);
|
|
33661
33674
|
}
|
|
33662
33675
|
if (saveDecoratorContext) {
|
|
33663
33676
|
setDecoratorContext(/*val*/ true);
|
|
@@ -33665,9 +33678,9 @@ var ts;
|
|
|
33665
33678
|
return expr;
|
|
33666
33679
|
}
|
|
33667
33680
|
function parseInitializer() {
|
|
33668
|
-
return parseOptional(63 /* EqualsToken */) ? parseAssignmentExpressionOrHigher() : undefined;
|
|
33681
|
+
return parseOptional(63 /* EqualsToken */) ? parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false) : undefined;
|
|
33669
33682
|
}
|
|
33670
|
-
function parseAssignmentExpressionOrHigher() {
|
|
33683
|
+
function parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction) {
|
|
33671
33684
|
// AssignmentExpression[in,yield]:
|
|
33672
33685
|
// 1) ConditionalExpression[?in,?yield]
|
|
33673
33686
|
// 2) LeftHandSideExpression = AssignmentExpression[?in,?yield]
|
|
@@ -33693,7 +33706,7 @@ var ts;
|
|
|
33693
33706
|
// If we do successfully parse arrow-function, we must *not* recurse for productions 1, 2 or 3. An ArrowFunction is
|
|
33694
33707
|
// not a LeftHandSideExpression, nor does it start a ConditionalExpression. So we are done
|
|
33695
33708
|
// with AssignmentExpression if we see one.
|
|
33696
|
-
var arrowExpression = tryParseParenthesizedArrowFunctionExpression() || tryParseAsyncSimpleArrowFunctionExpression();
|
|
33709
|
+
var arrowExpression = tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction);
|
|
33697
33710
|
if (arrowExpression) {
|
|
33698
33711
|
return arrowExpression;
|
|
33699
33712
|
}
|
|
@@ -33712,7 +33725,7 @@ var ts;
|
|
|
33712
33725
|
// parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single
|
|
33713
33726
|
// identifier and the current token is an arrow.
|
|
33714
33727
|
if (expr.kind === 79 /* Identifier */ && token() === 38 /* EqualsGreaterThanToken */) {
|
|
33715
|
-
return parseSimpleArrowFunctionExpression(pos, expr, /*asyncModifier*/ undefined);
|
|
33728
|
+
return parseSimpleArrowFunctionExpression(pos, expr, disallowReturnTypeInArrowFunction, /*asyncModifier*/ undefined);
|
|
33716
33729
|
}
|
|
33717
33730
|
// Now see if we might be in cases '2' or '3'.
|
|
33718
33731
|
// If the expression was a LHS expression, and we have an assignment operator, then
|
|
@@ -33721,7 +33734,7 @@ var ts;
|
|
|
33721
33734
|
// Note: we call reScanGreaterToken so that we get an appropriately merged token
|
|
33722
33735
|
// for cases like `> > =` becoming `>>=`
|
|
33723
33736
|
if (ts.isLeftHandSideExpression(expr) && ts.isAssignmentOperator(reScanGreaterToken())) {
|
|
33724
|
-
return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(), pos);
|
|
33737
|
+
return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction), pos);
|
|
33725
33738
|
}
|
|
33726
33739
|
// It wasn't an assignment or a lambda. This is a conditional expression:
|
|
33727
33740
|
return parseConditionalExpressionRest(expr, pos);
|
|
@@ -33764,7 +33777,7 @@ var ts;
|
|
|
33764
33777
|
nextToken();
|
|
33765
33778
|
if (!scanner.hasPrecedingLineBreak() &&
|
|
33766
33779
|
(token() === 41 /* AsteriskToken */ || isStartOfExpression())) {
|
|
33767
|
-
return finishNode(factory.createYieldExpression(parseOptionalToken(41 /* AsteriskToken */), parseAssignmentExpressionOrHigher()), pos);
|
|
33780
|
+
return finishNode(factory.createYieldExpression(parseOptionalToken(41 /* AsteriskToken */), parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false)), pos);
|
|
33768
33781
|
}
|
|
33769
33782
|
else {
|
|
33770
33783
|
// if the next token is not on the same line as yield. or we don't have an '*' or
|
|
@@ -33772,7 +33785,7 @@ var ts;
|
|
|
33772
33785
|
return finishNode(factory.createYieldExpression(/*asteriskToken*/ undefined, /*expression*/ undefined), pos);
|
|
33773
33786
|
}
|
|
33774
33787
|
}
|
|
33775
|
-
function parseSimpleArrowFunctionExpression(pos, identifier, asyncModifier) {
|
|
33788
|
+
function parseSimpleArrowFunctionExpression(pos, identifier, disallowReturnTypeInArrowFunction, asyncModifier) {
|
|
33776
33789
|
ts.Debug.assert(token() === 38 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
|
|
33777
33790
|
var parameter = factory.createParameterDeclaration(
|
|
33778
33791
|
/*decorators*/ undefined,
|
|
@@ -33784,11 +33797,11 @@ var ts;
|
|
|
33784
33797
|
finishNode(parameter, identifier.pos);
|
|
33785
33798
|
var parameters = createNodeArray([parameter], parameter.pos, parameter.end);
|
|
33786
33799
|
var equalsGreaterThanToken = parseExpectedToken(38 /* EqualsGreaterThanToken */);
|
|
33787
|
-
var body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier);
|
|
33800
|
+
var body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier, disallowReturnTypeInArrowFunction);
|
|
33788
33801
|
var node = factory.createArrowFunction(asyncModifier, /*typeParameters*/ undefined, parameters, /*type*/ undefined, equalsGreaterThanToken, body);
|
|
33789
33802
|
return addJSDocComment(finishNode(node, pos));
|
|
33790
33803
|
}
|
|
33791
|
-
function tryParseParenthesizedArrowFunctionExpression() {
|
|
33804
|
+
function tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
|
|
33792
33805
|
var triState = isParenthesizedArrowFunctionExpression();
|
|
33793
33806
|
if (triState === 0 /* False */) {
|
|
33794
33807
|
// It's definitely not a parenthesized arrow function expression.
|
|
@@ -33799,8 +33812,8 @@ var ts;
|
|
|
33799
33812
|
// it out, but don't allow any ambiguity, and return 'undefined' if this could be an
|
|
33800
33813
|
// expression instead.
|
|
33801
33814
|
return triState === 1 /* True */ ?
|
|
33802
|
-
parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true) :
|
|
33803
|
-
tryParse(parsePossibleParenthesizedArrowFunctionExpression);
|
|
33815
|
+
parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true, /*disallowReturnTypeInArrowFunction*/ false) :
|
|
33816
|
+
tryParse(function () { return parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction); });
|
|
33804
33817
|
}
|
|
33805
33818
|
// True -> We definitely expect a parenthesized arrow function here.
|
|
33806
33819
|
// False -> There *cannot* be a parenthesized arrow function here.
|
|
@@ -33930,25 +33943,25 @@ var ts;
|
|
|
33930
33943
|
return 2 /* Unknown */;
|
|
33931
33944
|
}
|
|
33932
33945
|
}
|
|
33933
|
-
function parsePossibleParenthesizedArrowFunctionExpression() {
|
|
33946
|
+
function parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
|
|
33934
33947
|
var tokenPos = scanner.getTokenPos();
|
|
33935
33948
|
if (notParenthesizedArrow === null || notParenthesizedArrow === void 0 ? void 0 : notParenthesizedArrow.has(tokenPos)) {
|
|
33936
33949
|
return undefined;
|
|
33937
33950
|
}
|
|
33938
|
-
var result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false);
|
|
33951
|
+
var result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false, disallowReturnTypeInArrowFunction);
|
|
33939
33952
|
if (!result) {
|
|
33940
33953
|
(notParenthesizedArrow || (notParenthesizedArrow = new ts.Set())).add(tokenPos);
|
|
33941
33954
|
}
|
|
33942
33955
|
return result;
|
|
33943
33956
|
}
|
|
33944
|
-
function tryParseAsyncSimpleArrowFunctionExpression() {
|
|
33957
|
+
function tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction) {
|
|
33945
33958
|
// We do a check here so that we won't be doing unnecessarily call to "lookAhead"
|
|
33946
33959
|
if (token() === 131 /* AsyncKeyword */) {
|
|
33947
33960
|
if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) {
|
|
33948
33961
|
var pos = getNodePos();
|
|
33949
33962
|
var asyncModifier = parseModifiersForArrowFunction();
|
|
33950
33963
|
var expr = parseBinaryExpressionOrHigher(0 /* Lowest */);
|
|
33951
|
-
return parseSimpleArrowFunctionExpression(pos, expr, asyncModifier);
|
|
33964
|
+
return parseSimpleArrowFunctionExpression(pos, expr, disallowReturnTypeInArrowFunction, asyncModifier);
|
|
33952
33965
|
}
|
|
33953
33966
|
}
|
|
33954
33967
|
return undefined;
|
|
@@ -33972,7 +33985,7 @@ var ts;
|
|
|
33972
33985
|
}
|
|
33973
33986
|
return 0 /* False */;
|
|
33974
33987
|
}
|
|
33975
|
-
function parseParenthesizedArrowFunctionExpression(allowAmbiguity) {
|
|
33988
|
+
function parseParenthesizedArrowFunctionExpression(allowAmbiguity, disallowReturnTypeInArrowFunction) {
|
|
33976
33989
|
var pos = getNodePos();
|
|
33977
33990
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
33978
33991
|
var modifiers = parseModifiersForArrowFunction();
|
|
@@ -33998,6 +34011,23 @@ var ts;
|
|
|
33998
34011
|
return undefined;
|
|
33999
34012
|
}
|
|
34000
34013
|
}
|
|
34014
|
+
// Given:
|
|
34015
|
+
// x ? y => ({ y }) : z => ({ z })
|
|
34016
|
+
// We try to parse the body of the first arrow function by looking at:
|
|
34017
|
+
// ({ y }) : z => ({ z })
|
|
34018
|
+
// This is a valid arrow function with "z" as the return type.
|
|
34019
|
+
//
|
|
34020
|
+
// But, if we're in the true side of a conditional expression, this colon
|
|
34021
|
+
// terminates the expression, so we cannot allow a return type if we aren't
|
|
34022
|
+
// certain whether or not the preceding text was parsed as a parameter list.
|
|
34023
|
+
//
|
|
34024
|
+
// For example,
|
|
34025
|
+
// a() ? (b: number, c?: string): void => d() : e
|
|
34026
|
+
// is determined by isParenthesizedArrowFunctionExpression to unambiguously
|
|
34027
|
+
// be an arrow expression, so we allow a return type.
|
|
34028
|
+
if (disallowReturnTypeInArrowFunction && token() === 58 /* ColonToken */) {
|
|
34029
|
+
return undefined;
|
|
34030
|
+
}
|
|
34001
34031
|
var type = parseReturnType(58 /* ColonToken */, /*isType*/ false);
|
|
34002
34032
|
if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) {
|
|
34003
34033
|
return undefined;
|
|
@@ -34026,12 +34056,12 @@ var ts;
|
|
|
34026
34056
|
var lastToken = token();
|
|
34027
34057
|
var equalsGreaterThanToken = parseExpectedToken(38 /* EqualsGreaterThanToken */);
|
|
34028
34058
|
var body = (lastToken === 38 /* EqualsGreaterThanToken */ || lastToken === 18 /* OpenBraceToken */)
|
|
34029
|
-
? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier))
|
|
34059
|
+
? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier), disallowReturnTypeInArrowFunction)
|
|
34030
34060
|
: parseIdentifier();
|
|
34031
34061
|
var node = factory.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body);
|
|
34032
34062
|
return withJSDoc(finishNode(node, pos), hasJSDoc);
|
|
34033
34063
|
}
|
|
34034
|
-
function parseArrowFunctionExpressionBody(isAsync) {
|
|
34064
|
+
function parseArrowFunctionExpressionBody(isAsync, disallowReturnTypeInArrowFunction) {
|
|
34035
34065
|
if (token() === 18 /* OpenBraceToken */) {
|
|
34036
34066
|
return parseFunctionBlock(isAsync ? 2 /* Await */ : 0 /* None */);
|
|
34037
34067
|
}
|
|
@@ -34059,8 +34089,8 @@ var ts;
|
|
|
34059
34089
|
var savedTopLevel = topLevel;
|
|
34060
34090
|
topLevel = false;
|
|
34061
34091
|
var node = isAsync
|
|
34062
|
-
? doInAwaitContext(parseAssignmentExpressionOrHigher)
|
|
34063
|
-
: doOutsideOfAwaitContext(parseAssignmentExpressionOrHigher);
|
|
34092
|
+
? doInAwaitContext(function () { return parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction); })
|
|
34093
|
+
: doOutsideOfAwaitContext(function () { return parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction); });
|
|
34064
34094
|
topLevel = savedTopLevel;
|
|
34065
34095
|
return node;
|
|
34066
34096
|
}
|
|
@@ -34073,8 +34103,8 @@ var ts;
|
|
|
34073
34103
|
// Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and
|
|
34074
34104
|
// we do not that for the 'whenFalse' part.
|
|
34075
34105
|
var colonToken;
|
|
34076
|
-
return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher), colonToken = parseExpectedToken(58 /* ColonToken */), ts.nodeIsPresent(colonToken)
|
|
34077
|
-
? parseAssignmentExpressionOrHigher()
|
|
34106
|
+
return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, function () { return parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ true); }), colonToken = parseExpectedToken(58 /* ColonToken */), ts.nodeIsPresent(colonToken)
|
|
34107
|
+
? parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ true)
|
|
34078
34108
|
: createMissingNode(79 /* Identifier */, /*reportAtCurrentPosition*/ false, ts.Diagnostics._0_expected, ts.tokenToString(58 /* ColonToken */))), pos);
|
|
34079
34109
|
}
|
|
34080
34110
|
function parseBinaryExpressionOrHigher(precedence) {
|
|
@@ -34990,13 +35020,13 @@ var ts;
|
|
|
34990
35020
|
function parseSpreadElement() {
|
|
34991
35021
|
var pos = getNodePos();
|
|
34992
35022
|
parseExpected(25 /* DotDotDotToken */);
|
|
34993
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
35023
|
+
var expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
34994
35024
|
return finishNode(factory.createSpreadElement(expression), pos);
|
|
34995
35025
|
}
|
|
34996
35026
|
function parseArgumentOrArrayLiteralElement() {
|
|
34997
35027
|
return token() === 25 /* DotDotDotToken */ ? parseSpreadElement() :
|
|
34998
35028
|
token() === 27 /* CommaToken */ ? finishNode(factory.createOmittedExpression(), getNodePos()) :
|
|
34999
|
-
parseAssignmentExpressionOrHigher();
|
|
35029
|
+
parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
35000
35030
|
}
|
|
35001
35031
|
function parseArgumentExpression() {
|
|
35002
35032
|
return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
|
|
@@ -35013,7 +35043,7 @@ var ts;
|
|
|
35013
35043
|
var pos = getNodePos();
|
|
35014
35044
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35015
35045
|
if (parseOptionalToken(25 /* DotDotDotToken */)) {
|
|
35016
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
35046
|
+
var expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
35017
35047
|
return withJSDoc(finishNode(factory.createSpreadAssignment(expression), pos), hasJSDoc);
|
|
35018
35048
|
}
|
|
35019
35049
|
var decorators = parseDecorators();
|
|
@@ -35042,7 +35072,7 @@ var ts;
|
|
|
35042
35072
|
var isShorthandPropertyAssignment = tokenIsIdentifier && (token() !== 58 /* ColonToken */);
|
|
35043
35073
|
if (isShorthandPropertyAssignment) {
|
|
35044
35074
|
var equalsToken = parseOptionalToken(63 /* EqualsToken */);
|
|
35045
|
-
var objectAssignmentInitializer = equalsToken ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined;
|
|
35075
|
+
var objectAssignmentInitializer = equalsToken ? allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); }) : undefined;
|
|
35046
35076
|
node = factory.createShorthandPropertyAssignment(name, objectAssignmentInitializer);
|
|
35047
35077
|
// Save equals token for error reporting.
|
|
35048
35078
|
// TODO(rbuckton): Consider manufacturing this when we need to report an error as it is otherwise not useful.
|
|
@@ -35050,7 +35080,7 @@ var ts;
|
|
|
35050
35080
|
}
|
|
35051
35081
|
else {
|
|
35052
35082
|
parseExpected(58 /* ColonToken */);
|
|
35053
|
-
var initializer = allowInAnd(parseAssignmentExpressionOrHigher);
|
|
35083
|
+
var initializer = allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); });
|
|
35054
35084
|
node = factory.createPropertyAssignment(name, initializer);
|
|
35055
35085
|
}
|
|
35056
35086
|
// Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker
|
|
@@ -35230,7 +35260,7 @@ var ts;
|
|
|
35230
35260
|
}
|
|
35231
35261
|
var node;
|
|
35232
35262
|
if (awaitToken ? parseExpected(159 /* OfKeyword */) : parseOptional(159 /* OfKeyword */)) {
|
|
35233
|
-
var expression = allowInAnd(parseAssignmentExpressionOrHigher);
|
|
35263
|
+
var expression = allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); });
|
|
35234
35264
|
parseExpected(21 /* CloseParenToken */);
|
|
35235
35265
|
node = factory.createForOfStatement(awaitToken, initializer, expression, parseStatement());
|
|
35236
35266
|
}
|
|
@@ -36397,7 +36427,7 @@ var ts;
|
|
|
36397
36427
|
var pos = getNodePos();
|
|
36398
36428
|
var name = ts.tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(10 /* StringLiteral */);
|
|
36399
36429
|
parseExpected(58 /* ColonToken */);
|
|
36400
|
-
var value = parseAssignmentExpressionOrHigher();
|
|
36430
|
+
var value = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
36401
36431
|
return finishNode(factory.createAssertEntry(name, value), pos);
|
|
36402
36432
|
}
|
|
36403
36433
|
function parseAssertClause() {
|
|
@@ -36634,7 +36664,7 @@ var ts;
|
|
|
36634
36664
|
else {
|
|
36635
36665
|
parseExpected(88 /* DefaultKeyword */);
|
|
36636
36666
|
}
|
|
36637
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
36667
|
+
var expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false);
|
|
36638
36668
|
parseSemicolon();
|
|
36639
36669
|
setAwaitContext(savedAwaitContext);
|
|
36640
36670
|
var node = factory.createExportAssignment(decorators, modifiers, isExportEquals, expression);
|
|
@@ -91814,9 +91844,13 @@ var ts;
|
|
|
91814
91844
|
}
|
|
91815
91845
|
}
|
|
91816
91846
|
function visitVariableDeclaration(node) {
|
|
91817
|
-
|
|
91847
|
+
var updated = factory.updateVariableDeclaration(node, ts.visitNode(node.name, visitor, ts.isBindingName),
|
|
91818
91848
|
/*exclamationToken*/ undefined,
|
|
91819
91849
|
/*type*/ undefined, ts.visitNode(node.initializer, visitor, ts.isExpression));
|
|
91850
|
+
if (node.type) {
|
|
91851
|
+
ts.setTypeNode(updated.name, node.type);
|
|
91852
|
+
}
|
|
91853
|
+
return updated;
|
|
91820
91854
|
}
|
|
91821
91855
|
function visitParenthesizedExpression(node) {
|
|
91822
91856
|
var innerExpression = ts.skipOuterExpressions(node.expression, ~6 /* Assertions */);
|
|
@@ -111148,10 +111182,11 @@ var ts;
|
|
|
111148
111182
|
// Declarations
|
|
111149
111183
|
//
|
|
111150
111184
|
function emitVariableDeclaration(node) {
|
|
111185
|
+
var _a, _b, _c, _d, _e;
|
|
111151
111186
|
emit(node.name);
|
|
111152
111187
|
emit(node.exclamationToken);
|
|
111153
111188
|
emitTypeAnnotation(node.type);
|
|
111154
|
-
emitInitializer(node.initializer, node.type ? node.
|
|
111189
|
+
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);
|
|
111155
111190
|
}
|
|
111156
111191
|
function emitVariableDeclarationList(node) {
|
|
111157
111192
|
writeKeyword(ts.isLet(node) ? "let" : ts.isVarConst(node) ? "const" : "var");
|
|
@@ -113133,6 +113168,10 @@ var ts;
|
|
|
113133
113168
|
commentsDisabled = false;
|
|
113134
113169
|
}
|
|
113135
113170
|
emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);
|
|
113171
|
+
var typeNode = ts.getTypeNode(node);
|
|
113172
|
+
if (typeNode) {
|
|
113173
|
+
emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);
|
|
113174
|
+
}
|
|
113136
113175
|
}
|
|
113137
113176
|
function emitLeadingCommentsOfNode(node, emitFlags, pos, end) {
|
|
113138
113177
|
enterComment();
|
|
@@ -135499,6 +135538,9 @@ var ts;
|
|
|
135499
135538
|
// *don’t* include readonly member modifiers.
|
|
135500
135539
|
return getAllReferencesForKeyword(sourceFiles, node.kind, cancellationToken, node.kind === 144 /* ReadonlyKeyword */ ? isReadonlyTypeOperator : undefined);
|
|
135501
135540
|
}
|
|
135541
|
+
if (ts.isImportMeta(node.parent) && node.parent.name === node) {
|
|
135542
|
+
return getAllReferencesForImportMeta(sourceFiles, cancellationToken);
|
|
135543
|
+
}
|
|
135502
135544
|
if (ts.isStaticModifier(node) && ts.isClassStaticBlockDeclaration(node.parent)) {
|
|
135503
135545
|
return [{ definition: { type: 2 /* Keyword */, node: node }, references: [nodeEntry(node)] }];
|
|
135504
135546
|
}
|
|
@@ -135980,6 +136022,18 @@ var ts;
|
|
|
135980
136022
|
return false;
|
|
135981
136023
|
}
|
|
135982
136024
|
}
|
|
136025
|
+
function getAllReferencesForImportMeta(sourceFiles, cancellationToken) {
|
|
136026
|
+
var references = ts.flatMap(sourceFiles, function (sourceFile) {
|
|
136027
|
+
cancellationToken.throwIfCancellationRequested();
|
|
136028
|
+
return ts.mapDefined(getPossibleSymbolReferenceNodes(sourceFile, "meta", sourceFile), function (node) {
|
|
136029
|
+
var parent = node.parent;
|
|
136030
|
+
if (ts.isImportMeta(parent)) {
|
|
136031
|
+
return nodeEntry(parent);
|
|
136032
|
+
}
|
|
136033
|
+
});
|
|
136034
|
+
});
|
|
136035
|
+
return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references: references }] : undefined;
|
|
136036
|
+
}
|
|
135983
136037
|
function getAllReferencesForKeyword(sourceFiles, keywordKind, cancellationToken, filter) {
|
|
135984
136038
|
var references = ts.flatMap(sourceFiles, function (sourceFile) {
|
|
135985
136039
|
cancellationToken.throwIfCancellationRequested();
|
|
@@ -137692,6 +137746,9 @@ var ts;
|
|
|
137692
137746
|
if (node === sourceFile) {
|
|
137693
137747
|
return undefined;
|
|
137694
137748
|
}
|
|
137749
|
+
if (ts.isImportMeta(node.parent) && node.parent.name === node) {
|
|
137750
|
+
return definitionFromType(typeChecker.getTypeAtLocation(node.parent), typeChecker, node.parent);
|
|
137751
|
+
}
|
|
137695
137752
|
var symbol = getSymbol(node, typeChecker);
|
|
137696
137753
|
if (!symbol)
|
|
137697
137754
|
return undefined;
|
|
@@ -162820,6 +162877,9 @@ var ts;
|
|
|
162820
162877
|
if (ts.isNamedTupleMember(node.parent) && node.pos === node.parent.pos) {
|
|
162821
162878
|
return node.parent;
|
|
162822
162879
|
}
|
|
162880
|
+
if (ts.isImportMeta(node.parent) && node.parent.name === node) {
|
|
162881
|
+
return node.parent;
|
|
162882
|
+
}
|
|
162823
162883
|
return node;
|
|
162824
162884
|
}
|
|
162825
162885
|
function shouldGetType(sourceFile, node, position) {
|
|
@@ -162835,6 +162895,8 @@ var ts;
|
|
|
162835
162895
|
case 106 /* SuperKeyword */:
|
|
162836
162896
|
case 196 /* NamedTupleMember */:
|
|
162837
162897
|
return true;
|
|
162898
|
+
case 230 /* MetaProperty */:
|
|
162899
|
+
return ts.isImportMeta(node);
|
|
162838
162900
|
default:
|
|
162839
162901
|
return false;
|
|
162840
162902
|
}
|
|
@@ -2015,6 +2015,12 @@ declare namespace ts {
|
|
|
2015
2015
|
path: string;
|
|
2016
2016
|
name?: string;
|
|
2017
2017
|
}
|
|
2018
|
+
/**
|
|
2019
|
+
* Subset of properties from SourceFile that are used in multiple utility functions
|
|
2020
|
+
*/
|
|
2021
|
+
export interface SourceFileLike {
|
|
2022
|
+
readonly text: string;
|
|
2023
|
+
}
|
|
2018
2024
|
export interface SourceFile extends Declaration {
|
|
2019
2025
|
readonly kind: SyntaxKind.SourceFile;
|
|
2020
2026
|
readonly statements: NodeArray<Statement>;
|