typescript 5.1.0-dev.20230515 → 5.2.0-dev.20230517

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
@@ -17,8 +17,8 @@ and limitations under the License.
17
17
  "use strict";
18
18
 
19
19
  // src/compiler/corePublic.ts
20
- var versionMajorMinor = "5.1";
21
- var version = `${versionMajorMinor}.0-dev.20230515`;
20
+ var versionMajorMinor = "5.2";
21
+ var version = `${versionMajorMinor}.0-dev.20230517`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -54156,7 +54156,35 @@ function createTypeChecker(host) {
54156
54156
  return emptyArray;
54157
54157
  }
54158
54158
  function getSignaturesOfType(type, kind) {
54159
- return getSignaturesOfStructuredType(getReducedApparentType(type), kind);
54159
+ const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);
54160
+ if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {
54161
+ if (type.arrayFallbackSignatures) {
54162
+ return type.arrayFallbackSignatures;
54163
+ }
54164
+ let memberName;
54165
+ if (everyType(type, (t) => {
54166
+ var _a;
54167
+ return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);
54168
+ })) {
54169
+ const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));
54170
+ const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));
54171
+ return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);
54172
+ }
54173
+ type.arrayFallbackSignatures = result;
54174
+ }
54175
+ return result;
54176
+ }
54177
+ function isArrayOrTupleSymbol(symbol) {
54178
+ if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {
54179
+ return false;
54180
+ }
54181
+ return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
54182
+ }
54183
+ function isReadonlyArraySymbol(symbol) {
54184
+ if (!symbol || !globalReadonlyArrayType.symbol) {
54185
+ return false;
54186
+ }
54187
+ return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
54160
54188
  }
54161
54189
  function findIndexInfo(indexInfos, keyType) {
54162
54190
  return find(indexInfos, (info) => info.keyType === keyType);
@@ -67010,6 +67038,7 @@ function createTypeChecker(host) {
67010
67038
  case 9 /* NumericLiteral */:
67011
67039
  case 10 /* BigIntLiteral */:
67012
67040
  case 15 /* NoSubstitutionTemplateLiteral */:
67041
+ case 227 /* TemplateExpression */:
67013
67042
  case 112 /* TrueKeyword */:
67014
67043
  case 97 /* FalseKeyword */:
67015
67044
  case 106 /* NullKeyword */:
@@ -69676,8 +69705,9 @@ function createTypeChecker(host) {
69676
69705
  void 0,
69677
69706
  checkMode
69678
69707
  );
69708
+ const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;
69679
69709
  return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(
69680
- attributesType,
69710
+ checkAttributesType,
69681
69711
  paramType,
69682
69712
  relation,
69683
69713
  reportErrors2 ? node.tagName : void 0,
@@ -73811,11 +73841,15 @@ function createTypeChecker(host) {
73811
73841
  texts.push(span.literal.text);
73812
73842
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
73813
73843
  }
73814
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType(
73844
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType(
73815
73845
  node,
73816
73846
  /*contextFlags*/
73817
73847
  void 0
73818
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
73848
+ ) || unknownType, isTemplateLiteralContextualType)) {
73849
+ return getTemplateLiteralType(texts, types);
73850
+ }
73851
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
73852
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
73819
73853
  }
73820
73854
  function isTemplateLiteralContextualType(type) {
73821
73855
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -78793,11 +78827,11 @@ function createTypeChecker(host) {
78793
78827
  );
78794
78828
  if (symbol) {
78795
78829
  if (symbol.flags & 8 /* EnumMember */) {
78796
- return evaluateEnumMember(expr, symbol, location);
78830
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
78797
78831
  }
78798
78832
  if (isConstVariable(symbol)) {
78799
78833
  const declaration = symbol.valueDeclaration;
78800
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
78834
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
78801
78835
  return evaluate(declaration.initializer, declaration);
78802
78836
  }
78803
78837
  }
@@ -78817,7 +78851,7 @@ function createTypeChecker(host) {
78817
78851
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
78818
78852
  const member = rootSymbol.exports.get(name);
78819
78853
  if (member) {
78820
- return evaluateEnumMember(expr, member, location);
78854
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
78821
78855
  }
78822
78856
  }
78823
78857
  }
package/lib/tsserver.js CHANGED
@@ -2303,8 +2303,8 @@ __export(server_exports, {
2303
2303
  module.exports = __toCommonJS(server_exports);
2304
2304
 
2305
2305
  // src/compiler/corePublic.ts
2306
- var versionMajorMinor = "5.1";
2307
- var version = `${versionMajorMinor}.0-dev.20230515`;
2306
+ var versionMajorMinor = "5.2";
2307
+ var version = `${versionMajorMinor}.0-dev.20230517`;
2308
2308
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2309
2309
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2310
2310
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -58807,7 +58807,35 @@ function createTypeChecker(host) {
58807
58807
  return emptyArray;
58808
58808
  }
58809
58809
  function getSignaturesOfType(type, kind) {
58810
- return getSignaturesOfStructuredType(getReducedApparentType(type), kind);
58810
+ const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);
58811
+ if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {
58812
+ if (type.arrayFallbackSignatures) {
58813
+ return type.arrayFallbackSignatures;
58814
+ }
58815
+ let memberName;
58816
+ if (everyType(type, (t) => {
58817
+ var _a;
58818
+ return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);
58819
+ })) {
58820
+ const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));
58821
+ const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));
58822
+ return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);
58823
+ }
58824
+ type.arrayFallbackSignatures = result;
58825
+ }
58826
+ return result;
58827
+ }
58828
+ function isArrayOrTupleSymbol(symbol) {
58829
+ if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {
58830
+ return false;
58831
+ }
58832
+ return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
58833
+ }
58834
+ function isReadonlyArraySymbol(symbol) {
58835
+ if (!symbol || !globalReadonlyArrayType.symbol) {
58836
+ return false;
58837
+ }
58838
+ return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
58811
58839
  }
58812
58840
  function findIndexInfo(indexInfos, keyType) {
58813
58841
  return find(indexInfos, (info) => info.keyType === keyType);
@@ -71661,6 +71689,7 @@ function createTypeChecker(host) {
71661
71689
  case 9 /* NumericLiteral */:
71662
71690
  case 10 /* BigIntLiteral */:
71663
71691
  case 15 /* NoSubstitutionTemplateLiteral */:
71692
+ case 227 /* TemplateExpression */:
71664
71693
  case 112 /* TrueKeyword */:
71665
71694
  case 97 /* FalseKeyword */:
71666
71695
  case 106 /* NullKeyword */:
@@ -74327,8 +74356,9 @@ function createTypeChecker(host) {
74327
74356
  void 0,
74328
74357
  checkMode
74329
74358
  );
74359
+ const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;
74330
74360
  return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(
74331
- attributesType,
74361
+ checkAttributesType,
74332
74362
  paramType,
74333
74363
  relation,
74334
74364
  reportErrors2 ? node.tagName : void 0,
@@ -78462,11 +78492,15 @@ function createTypeChecker(host) {
78462
78492
  texts.push(span.literal.text);
78463
78493
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
78464
78494
  }
78465
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
78495
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
78466
78496
  node,
78467
78497
  /*contextFlags*/
78468
78498
  void 0
78469
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
78499
+ ) || unknownType, isTemplateLiteralContextualType)) {
78500
+ return getTemplateLiteralType(texts, types);
78501
+ }
78502
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
78503
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
78470
78504
  }
78471
78505
  function isTemplateLiteralContextualType(type) {
78472
78506
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -83444,11 +83478,11 @@ function createTypeChecker(host) {
83444
83478
  );
83445
83479
  if (symbol) {
83446
83480
  if (symbol.flags & 8 /* EnumMember */) {
83447
- return evaluateEnumMember(expr, symbol, location);
83481
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
83448
83482
  }
83449
83483
  if (isConstVariable(symbol)) {
83450
83484
  const declaration = symbol.valueDeclaration;
83451
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
83485
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
83452
83486
  return evaluate(declaration.initializer, declaration);
83453
83487
  }
83454
83488
  }
@@ -83468,7 +83502,7 @@ function createTypeChecker(host) {
83468
83502
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
83469
83503
  const member = rootSymbol.exports.get(name);
83470
83504
  if (member) {
83471
- return evaluateEnumMember(expr, member, location);
83505
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
83472
83506
  }
83473
83507
  }
83474
83508
  }
@@ -162069,6 +162103,76 @@ function getReferenceAtPosition(sourceFile, position, program) {
162069
162103
  }
162070
162104
  return void 0;
162071
162105
  }
162106
+ var typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
162107
+ "Array",
162108
+ "ArrayLike",
162109
+ "ReadonlyArray",
162110
+ "Promise",
162111
+ "PromiseLike",
162112
+ "Iterable",
162113
+ "IterableIterator",
162114
+ "AsyncIterable",
162115
+ "Set",
162116
+ "WeakSet",
162117
+ "ReadonlySet",
162118
+ "Map",
162119
+ "WeakMap",
162120
+ "ReadonlyMap",
162121
+ "Partial",
162122
+ "Required",
162123
+ "Readonly",
162124
+ "Pick",
162125
+ "Omit"
162126
+ ]);
162127
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
162128
+ const referenceName = type.symbol.name;
162129
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
162130
+ return false;
162131
+ }
162132
+ const globalType = typeChecker.resolveName(
162133
+ referenceName,
162134
+ /*location*/
162135
+ void 0,
162136
+ 788968 /* Type */,
162137
+ /*excludeGlobals*/
162138
+ false
162139
+ );
162140
+ return !!globalType && globalType === type.target.symbol;
162141
+ }
162142
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
162143
+ if (!type.aliasSymbol) {
162144
+ return false;
162145
+ }
162146
+ const referenceName = type.aliasSymbol.name;
162147
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
162148
+ return false;
162149
+ }
162150
+ const globalType = typeChecker.resolveName(
162151
+ referenceName,
162152
+ /*location*/
162153
+ void 0,
162154
+ 788968 /* Type */,
162155
+ /*excludeGlobals*/
162156
+ false
162157
+ );
162158
+ return !!globalType && globalType === type.aliasSymbol;
162159
+ }
162160
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
162161
+ var _a, _b;
162162
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
162163
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
162164
+ }
162165
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
162166
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
162167
+ }
162168
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
162169
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
162170
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
162171
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
162172
+ }
162173
+ }
162174
+ return [];
162175
+ }
162072
162176
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
162073
162177
  const node = getTouchingPropertyName(sourceFile, position);
162074
162178
  if (node === sourceFile) {
@@ -162094,8 +162198,8 @@ function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
162094
162198
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
162095
162199
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
162096
162200
  const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution);
162097
- const typeDefinitions = fromReturnType && fromReturnType.length !== 0 ? fromReturnType : definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution);
162098
- return typeDefinitions.length ? typeDefinitions : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
162201
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
162202
+ return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
162099
162203
  }
162100
162204
  function definitionFromType(type, checker, node, failedAliasResolution) {
162101
162205
  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
@@ -4061,7 +4061,7 @@ declare namespace ts {
4061
4061
  responseRequired?: boolean;
4062
4062
  }
4063
4063
  }
4064
- const versionMajorMinor = "5.1";
4064
+ const versionMajorMinor = "5.2";
4065
4065
  /** The version of the TypeScript compiler release */
4066
4066
  const version: string;
4067
4067
  /**
@@ -34,8 +34,8 @@ var ts = (() => {
34
34
  var init_corePublic = __esm({
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
- versionMajorMinor = "5.1";
38
- version = `${versionMajorMinor}.0-dev.20230515`;
37
+ versionMajorMinor = "5.2";
38
+ version = `${versionMajorMinor}.0-dev.20230517`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -56598,7 +56598,35 @@ ${lanes.join("\n")}
56598
56598
  return emptyArray;
56599
56599
  }
56600
56600
  function getSignaturesOfType(type, kind) {
56601
- return getSignaturesOfStructuredType(getReducedApparentType(type), kind);
56601
+ const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);
56602
+ if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {
56603
+ if (type.arrayFallbackSignatures) {
56604
+ return type.arrayFallbackSignatures;
56605
+ }
56606
+ let memberName;
56607
+ if (everyType(type, (t) => {
56608
+ var _a;
56609
+ return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);
56610
+ })) {
56611
+ const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));
56612
+ const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));
56613
+ return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);
56614
+ }
56615
+ type.arrayFallbackSignatures = result;
56616
+ }
56617
+ return result;
56618
+ }
56619
+ function isArrayOrTupleSymbol(symbol) {
56620
+ if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {
56621
+ return false;
56622
+ }
56623
+ return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
56624
+ }
56625
+ function isReadonlyArraySymbol(symbol) {
56626
+ if (!symbol || !globalReadonlyArrayType.symbol) {
56627
+ return false;
56628
+ }
56629
+ return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
56602
56630
  }
56603
56631
  function findIndexInfo(indexInfos, keyType) {
56604
56632
  return find(indexInfos, (info) => info.keyType === keyType);
@@ -69452,6 +69480,7 @@ ${lanes.join("\n")}
69452
69480
  case 9 /* NumericLiteral */:
69453
69481
  case 10 /* BigIntLiteral */:
69454
69482
  case 15 /* NoSubstitutionTemplateLiteral */:
69483
+ case 227 /* TemplateExpression */:
69455
69484
  case 112 /* TrueKeyword */:
69456
69485
  case 97 /* FalseKeyword */:
69457
69486
  case 106 /* NullKeyword */:
@@ -72118,8 +72147,9 @@ ${lanes.join("\n")}
72118
72147
  void 0,
72119
72148
  checkMode
72120
72149
  );
72150
+ const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;
72121
72151
  return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(
72122
- attributesType,
72152
+ checkAttributesType,
72123
72153
  paramType,
72124
72154
  relation,
72125
72155
  reportErrors2 ? node.tagName : void 0,
@@ -76253,11 +76283,15 @@ ${lanes.join("\n")}
76253
76283
  texts.push(span.literal.text);
76254
76284
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
76255
76285
  }
76256
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76286
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
76287
  node,
76258
76288
  /*contextFlags*/
76259
76289
  void 0
76260
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
76290
+ ) || unknownType, isTemplateLiteralContextualType)) {
76291
+ return getTemplateLiteralType(texts, types);
76292
+ }
76293
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
76294
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
76261
76295
  }
76262
76296
  function isTemplateLiteralContextualType(type) {
76263
76297
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -81235,11 +81269,11 @@ ${lanes.join("\n")}
81235
81269
  );
81236
81270
  if (symbol) {
81237
81271
  if (symbol.flags & 8 /* EnumMember */) {
81238
- return evaluateEnumMember(expr, symbol, location);
81272
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81239
81273
  }
81240
81274
  if (isConstVariable(symbol)) {
81241
81275
  const declaration = symbol.valueDeclaration;
81242
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
81276
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
81243
81277
  return evaluate(declaration.initializer, declaration);
81244
81278
  }
81245
81279
  }
@@ -81259,7 +81293,7 @@ ${lanes.join("\n")}
81259
81293
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
81260
81294
  const member = rootSymbol.exports.get(name);
81261
81295
  if (member) {
81262
- return evaluateEnumMember(expr, member, location);
81296
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81263
81297
  }
81264
81298
  }
81265
81299
  }
@@ -161406,6 +161440,55 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161406
161440
  }
161407
161441
  return void 0;
161408
161442
  }
161443
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
161444
+ const referenceName = type.symbol.name;
161445
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161446
+ return false;
161447
+ }
161448
+ const globalType = typeChecker.resolveName(
161449
+ referenceName,
161450
+ /*location*/
161451
+ void 0,
161452
+ 788968 /* Type */,
161453
+ /*excludeGlobals*/
161454
+ false
161455
+ );
161456
+ return !!globalType && globalType === type.target.symbol;
161457
+ }
161458
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
161459
+ if (!type.aliasSymbol) {
161460
+ return false;
161461
+ }
161462
+ const referenceName = type.aliasSymbol.name;
161463
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161464
+ return false;
161465
+ }
161466
+ const globalType = typeChecker.resolveName(
161467
+ referenceName,
161468
+ /*location*/
161469
+ void 0,
161470
+ 788968 /* Type */,
161471
+ /*excludeGlobals*/
161472
+ false
161473
+ );
161474
+ return !!globalType && globalType === type.aliasSymbol;
161475
+ }
161476
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
161477
+ var _a, _b;
161478
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
161479
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
161480
+ }
161481
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
161482
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
161483
+ }
161484
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
161485
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
161486
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
161487
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
161488
+ }
161489
+ }
161490
+ return [];
161491
+ }
161409
161492
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
161410
161493
  const node = getTouchingPropertyName(sourceFile, position);
161411
161494
  if (node === sourceFile) {
@@ -161431,8 +161514,8 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161431
161514
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
161432
161515
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
161433
161516
  const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution);
161434
- const typeDefinitions = fromReturnType && fromReturnType.length !== 0 ? fromReturnType : definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution);
161435
- return typeDefinitions.length ? typeDefinitions : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
161517
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
161518
+ return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
161436
161519
  }
161437
161520
  function definitionFromType(type, checker, node, failedAliasResolution) {
161438
161521
  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
@@ -161649,10 +161732,32 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161649
161732
  return false;
161650
161733
  }
161651
161734
  }
161735
+ var typesWithUnwrappedTypeArguments;
161652
161736
  var init_goToDefinition = __esm({
161653
161737
  "src/services/goToDefinition.ts"() {
161654
161738
  "use strict";
161655
161739
  init_ts4();
161740
+ typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
161741
+ "Array",
161742
+ "ArrayLike",
161743
+ "ReadonlyArray",
161744
+ "Promise",
161745
+ "PromiseLike",
161746
+ "Iterable",
161747
+ "IterableIterator",
161748
+ "AsyncIterable",
161749
+ "Set",
161750
+ "WeakSet",
161751
+ "ReadonlySet",
161752
+ "Map",
161753
+ "WeakMap",
161754
+ "ReadonlyMap",
161755
+ "Partial",
161756
+ "Required",
161757
+ "Readonly",
161758
+ "Pick",
161759
+ "Omit"
161760
+ ]);
161656
161761
  }
161657
161762
  });
161658
161763
 
@@ -14,7 +14,7 @@ and limitations under the License.
14
14
  ***************************************************************************** */
15
15
 
16
16
  declare namespace ts {
17
- const versionMajorMinor = "5.1";
17
+ const versionMajorMinor = "5.2";
18
18
  /** The version of the TypeScript compiler release */
19
19
  const version: string;
20
20
  /**
package/lib/typescript.js CHANGED
@@ -34,8 +34,8 @@ var ts = (() => {
34
34
  var init_corePublic = __esm({
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
- versionMajorMinor = "5.1";
38
- version = `${versionMajorMinor}.0-dev.20230515`;
37
+ versionMajorMinor = "5.2";
38
+ version = `${versionMajorMinor}.0-dev.20230517`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -56598,7 +56598,35 @@ ${lanes.join("\n")}
56598
56598
  return emptyArray;
56599
56599
  }
56600
56600
  function getSignaturesOfType(type, kind) {
56601
- return getSignaturesOfStructuredType(getReducedApparentType(type), kind);
56601
+ const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);
56602
+ if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {
56603
+ if (type.arrayFallbackSignatures) {
56604
+ return type.arrayFallbackSignatures;
56605
+ }
56606
+ let memberName;
56607
+ if (everyType(type, (t) => {
56608
+ var _a;
56609
+ return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);
56610
+ })) {
56611
+ const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));
56612
+ const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));
56613
+ return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);
56614
+ }
56615
+ type.arrayFallbackSignatures = result;
56616
+ }
56617
+ return result;
56618
+ }
56619
+ function isArrayOrTupleSymbol(symbol) {
56620
+ if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {
56621
+ return false;
56622
+ }
56623
+ return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
56624
+ }
56625
+ function isReadonlyArraySymbol(symbol) {
56626
+ if (!symbol || !globalReadonlyArrayType.symbol) {
56627
+ return false;
56628
+ }
56629
+ return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);
56602
56630
  }
56603
56631
  function findIndexInfo(indexInfos, keyType) {
56604
56632
  return find(indexInfos, (info) => info.keyType === keyType);
@@ -69452,6 +69480,7 @@ ${lanes.join("\n")}
69452
69480
  case 9 /* NumericLiteral */:
69453
69481
  case 10 /* BigIntLiteral */:
69454
69482
  case 15 /* NoSubstitutionTemplateLiteral */:
69483
+ case 227 /* TemplateExpression */:
69455
69484
  case 112 /* TrueKeyword */:
69456
69485
  case 97 /* FalseKeyword */:
69457
69486
  case 106 /* NullKeyword */:
@@ -72118,8 +72147,9 @@ ${lanes.join("\n")}
72118
72147
  void 0,
72119
72148
  checkMode
72120
72149
  );
72150
+ const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;
72121
72151
  return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(
72122
- attributesType,
72152
+ checkAttributesType,
72123
72153
  paramType,
72124
72154
  relation,
72125
72155
  reportErrors2 ? node.tagName : void 0,
@@ -76253,11 +76283,15 @@ ${lanes.join("\n")}
76253
76283
  texts.push(span.literal.text);
76254
76284
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
76255
76285
  }
76256
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76286
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
76287
  node,
76258
76288
  /*contextFlags*/
76259
76289
  void 0
76260
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
76290
+ ) || unknownType, isTemplateLiteralContextualType)) {
76291
+ return getTemplateLiteralType(texts, types);
76292
+ }
76293
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
76294
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
76261
76295
  }
76262
76296
  function isTemplateLiteralContextualType(type) {
76263
76297
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -81235,11 +81269,11 @@ ${lanes.join("\n")}
81235
81269
  );
81236
81270
  if (symbol) {
81237
81271
  if (symbol.flags & 8 /* EnumMember */) {
81238
- return evaluateEnumMember(expr, symbol, location);
81272
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81239
81273
  }
81240
81274
  if (isConstVariable(symbol)) {
81241
81275
  const declaration = symbol.valueDeclaration;
81242
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
81276
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
81243
81277
  return evaluate(declaration.initializer, declaration);
81244
81278
  }
81245
81279
  }
@@ -81259,7 +81293,7 @@ ${lanes.join("\n")}
81259
81293
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
81260
81294
  const member = rootSymbol.exports.get(name);
81261
81295
  if (member) {
81262
- return evaluateEnumMember(expr, member, location);
81296
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81263
81297
  }
81264
81298
  }
81265
81299
  }
@@ -161421,6 +161455,55 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161421
161455
  }
161422
161456
  return void 0;
161423
161457
  }
161458
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
161459
+ const referenceName = type.symbol.name;
161460
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161461
+ return false;
161462
+ }
161463
+ const globalType = typeChecker.resolveName(
161464
+ referenceName,
161465
+ /*location*/
161466
+ void 0,
161467
+ 788968 /* Type */,
161468
+ /*excludeGlobals*/
161469
+ false
161470
+ );
161471
+ return !!globalType && globalType === type.target.symbol;
161472
+ }
161473
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
161474
+ if (!type.aliasSymbol) {
161475
+ return false;
161476
+ }
161477
+ const referenceName = type.aliasSymbol.name;
161478
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161479
+ return false;
161480
+ }
161481
+ const globalType = typeChecker.resolveName(
161482
+ referenceName,
161483
+ /*location*/
161484
+ void 0,
161485
+ 788968 /* Type */,
161486
+ /*excludeGlobals*/
161487
+ false
161488
+ );
161489
+ return !!globalType && globalType === type.aliasSymbol;
161490
+ }
161491
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
161492
+ var _a, _b;
161493
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
161494
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
161495
+ }
161496
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
161497
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
161498
+ }
161499
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
161500
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
161501
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
161502
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
161503
+ }
161504
+ }
161505
+ return [];
161506
+ }
161424
161507
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
161425
161508
  const node = getTouchingPropertyName(sourceFile, position);
161426
161509
  if (node === sourceFile) {
@@ -161446,8 +161529,8 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161446
161529
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
161447
161530
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
161448
161531
  const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution);
161449
- const typeDefinitions = fromReturnType && fromReturnType.length !== 0 ? fromReturnType : definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution);
161450
- return typeDefinitions.length ? typeDefinitions : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
161532
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
161533
+ return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;
161451
161534
  }
161452
161535
  function definitionFromType(type, checker, node, failedAliasResolution) {
161453
161536
  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
@@ -161664,10 +161747,32 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161664
161747
  return false;
161665
161748
  }
161666
161749
  }
161750
+ var typesWithUnwrappedTypeArguments;
161667
161751
  var init_goToDefinition = __esm({
161668
161752
  "src/services/goToDefinition.ts"() {
161669
161753
  "use strict";
161670
161754
  init_ts4();
161755
+ typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
161756
+ "Array",
161757
+ "ArrayLike",
161758
+ "ReadonlyArray",
161759
+ "Promise",
161760
+ "PromiseLike",
161761
+ "Iterable",
161762
+ "IterableIterator",
161763
+ "AsyncIterable",
161764
+ "Set",
161765
+ "WeakSet",
161766
+ "ReadonlySet",
161767
+ "Map",
161768
+ "WeakMap",
161769
+ "ReadonlyMap",
161770
+ "Partial",
161771
+ "Required",
161772
+ "Readonly",
161773
+ "Pick",
161774
+ "Omit"
161775
+ ]);
161671
161776
  }
161672
161777
  });
161673
161778
 
@@ -53,8 +53,8 @@ var fs = __toESM(require("fs"));
53
53
  var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
- var versionMajorMinor = "5.1";
57
- var version = `${versionMajorMinor}.0-dev.20230515`;
56
+ var versionMajorMinor = "5.2";
57
+ var version = `${versionMajorMinor}.0-dev.20230517`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.1.0-dev.20230515",
5
+ "version": "5.2.0-dev.20230517",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -113,5 +113,5 @@
113
113
  "node": "20.1.0",
114
114
  "npm": "8.19.4"
115
115
  },
116
- "gitHead": "8fae437660ba89353fc7104beae8c6856528e5b6"
116
+ "gitHead": "dddd0667f012c51582c2ac92c08b8e57f2456587"
117
117
  }