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

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.20230516`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -67010,6 +67010,7 @@ function createTypeChecker(host) {
67010
67010
  case 9 /* NumericLiteral */:
67011
67011
  case 10 /* BigIntLiteral */:
67012
67012
  case 15 /* NoSubstitutionTemplateLiteral */:
67013
+ case 227 /* TemplateExpression */:
67013
67014
  case 112 /* TrueKeyword */:
67014
67015
  case 97 /* FalseKeyword */:
67015
67016
  case 106 /* NullKeyword */:
@@ -73811,11 +73812,15 @@ function createTypeChecker(host) {
73811
73812
  texts.push(span.literal.text);
73812
73813
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
73813
73814
  }
73814
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType(
73815
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType(
73815
73816
  node,
73816
73817
  /*contextFlags*/
73817
73818
  void 0
73818
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
73819
+ ) || unknownType, isTemplateLiteralContextualType)) {
73820
+ return getTemplateLiteralType(texts, types);
73821
+ }
73822
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
73823
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
73819
73824
  }
73820
73825
  function isTemplateLiteralContextualType(type) {
73821
73826
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -78793,11 +78798,11 @@ function createTypeChecker(host) {
78793
78798
  );
78794
78799
  if (symbol) {
78795
78800
  if (symbol.flags & 8 /* EnumMember */) {
78796
- return evaluateEnumMember(expr, symbol, location);
78801
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
78797
78802
  }
78798
78803
  if (isConstVariable(symbol)) {
78799
78804
  const declaration = symbol.valueDeclaration;
78800
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
78805
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
78801
78806
  return evaluate(declaration.initializer, declaration);
78802
78807
  }
78803
78808
  }
@@ -78817,7 +78822,7 @@ function createTypeChecker(host) {
78817
78822
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
78818
78823
  const member = rootSymbol.exports.get(name);
78819
78824
  if (member) {
78820
- return evaluateEnumMember(expr, member, location);
78825
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
78821
78826
  }
78822
78827
  }
78823
78828
  }
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.20230516`;
2308
2308
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2309
2309
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2310
2310
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -71661,6 +71661,7 @@ function createTypeChecker(host) {
71661
71661
  case 9 /* NumericLiteral */:
71662
71662
  case 10 /* BigIntLiteral */:
71663
71663
  case 15 /* NoSubstitutionTemplateLiteral */:
71664
+ case 227 /* TemplateExpression */:
71664
71665
  case 112 /* TrueKeyword */:
71665
71666
  case 97 /* FalseKeyword */:
71666
71667
  case 106 /* NullKeyword */:
@@ -78462,11 +78463,15 @@ function createTypeChecker(host) {
78462
78463
  texts.push(span.literal.text);
78463
78464
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
78464
78465
  }
78465
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
78466
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
78466
78467
  node,
78467
78468
  /*contextFlags*/
78468
78469
  void 0
78469
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
78470
+ ) || unknownType, isTemplateLiteralContextualType)) {
78471
+ return getTemplateLiteralType(texts, types);
78472
+ }
78473
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
78474
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
78470
78475
  }
78471
78476
  function isTemplateLiteralContextualType(type) {
78472
78477
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -83444,11 +83449,11 @@ function createTypeChecker(host) {
83444
83449
  );
83445
83450
  if (symbol) {
83446
83451
  if (symbol.flags & 8 /* EnumMember */) {
83447
- return evaluateEnumMember(expr, symbol, location);
83452
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
83448
83453
  }
83449
83454
  if (isConstVariable(symbol)) {
83450
83455
  const declaration = symbol.valueDeclaration;
83451
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
83456
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
83452
83457
  return evaluate(declaration.initializer, declaration);
83453
83458
  }
83454
83459
  }
@@ -83468,7 +83473,7 @@ function createTypeChecker(host) {
83468
83473
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
83469
83474
  const member = rootSymbol.exports.get(name);
83470
83475
  if (member) {
83471
- return evaluateEnumMember(expr, member, location);
83476
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
83472
83477
  }
83473
83478
  }
83474
83479
  }
@@ -162069,6 +162074,76 @@ function getReferenceAtPosition(sourceFile, position, program) {
162069
162074
  }
162070
162075
  return void 0;
162071
162076
  }
162077
+ var typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
162078
+ "Array",
162079
+ "ArrayLike",
162080
+ "ReadonlyArray",
162081
+ "Promise",
162082
+ "PromiseLike",
162083
+ "Iterable",
162084
+ "IterableIterator",
162085
+ "AsyncIterable",
162086
+ "Set",
162087
+ "WeakSet",
162088
+ "ReadonlySet",
162089
+ "Map",
162090
+ "WeakMap",
162091
+ "ReadonlyMap",
162092
+ "Partial",
162093
+ "Required",
162094
+ "Readonly",
162095
+ "Pick",
162096
+ "Omit"
162097
+ ]);
162098
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
162099
+ const referenceName = type.symbol.name;
162100
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
162101
+ return false;
162102
+ }
162103
+ const globalType = typeChecker.resolveName(
162104
+ referenceName,
162105
+ /*location*/
162106
+ void 0,
162107
+ 788968 /* Type */,
162108
+ /*excludeGlobals*/
162109
+ false
162110
+ );
162111
+ return !!globalType && globalType === type.target.symbol;
162112
+ }
162113
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
162114
+ if (!type.aliasSymbol) {
162115
+ return false;
162116
+ }
162117
+ const referenceName = type.aliasSymbol.name;
162118
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
162119
+ return false;
162120
+ }
162121
+ const globalType = typeChecker.resolveName(
162122
+ referenceName,
162123
+ /*location*/
162124
+ void 0,
162125
+ 788968 /* Type */,
162126
+ /*excludeGlobals*/
162127
+ false
162128
+ );
162129
+ return !!globalType && globalType === type.aliasSymbol;
162130
+ }
162131
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
162132
+ var _a, _b;
162133
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
162134
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
162135
+ }
162136
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
162137
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
162138
+ }
162139
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
162140
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
162141
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
162142
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
162143
+ }
162144
+ }
162145
+ return [];
162146
+ }
162072
162147
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
162073
162148
  const node = getTouchingPropertyName(sourceFile, position);
162074
162149
  if (node === sourceFile) {
@@ -162094,8 +162169,8 @@ function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
162094
162169
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
162095
162170
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
162096
162171
  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;
162172
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
162173
+ 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
162174
  }
162100
162175
  function definitionFromType(type, checker, node, failedAliasResolution) {
162101
162176
  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.20230516`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -69452,6 +69452,7 @@ ${lanes.join("\n")}
69452
69452
  case 9 /* NumericLiteral */:
69453
69453
  case 10 /* BigIntLiteral */:
69454
69454
  case 15 /* NoSubstitutionTemplateLiteral */:
69455
+ case 227 /* TemplateExpression */:
69455
69456
  case 112 /* TrueKeyword */:
69456
69457
  case 97 /* FalseKeyword */:
69457
69458
  case 106 /* NullKeyword */:
@@ -76253,11 +76254,15 @@ ${lanes.join("\n")}
76253
76254
  texts.push(span.literal.text);
76254
76255
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
76255
76256
  }
76256
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
76258
  node,
76258
76259
  /*contextFlags*/
76259
76260
  void 0
76260
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
76261
+ ) || unknownType, isTemplateLiteralContextualType)) {
76262
+ return getTemplateLiteralType(texts, types);
76263
+ }
76264
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
76265
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
76261
76266
  }
76262
76267
  function isTemplateLiteralContextualType(type) {
76263
76268
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -81235,11 +81240,11 @@ ${lanes.join("\n")}
81235
81240
  );
81236
81241
  if (symbol) {
81237
81242
  if (symbol.flags & 8 /* EnumMember */) {
81238
- return evaluateEnumMember(expr, symbol, location);
81243
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81239
81244
  }
81240
81245
  if (isConstVariable(symbol)) {
81241
81246
  const declaration = symbol.valueDeclaration;
81242
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
81247
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
81243
81248
  return evaluate(declaration.initializer, declaration);
81244
81249
  }
81245
81250
  }
@@ -81259,7 +81264,7 @@ ${lanes.join("\n")}
81259
81264
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
81260
81265
  const member = rootSymbol.exports.get(name);
81261
81266
  if (member) {
81262
- return evaluateEnumMember(expr, member, location);
81267
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81263
81268
  }
81264
81269
  }
81265
81270
  }
@@ -161406,6 +161411,55 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161406
161411
  }
161407
161412
  return void 0;
161408
161413
  }
161414
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
161415
+ const referenceName = type.symbol.name;
161416
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161417
+ return false;
161418
+ }
161419
+ const globalType = typeChecker.resolveName(
161420
+ referenceName,
161421
+ /*location*/
161422
+ void 0,
161423
+ 788968 /* Type */,
161424
+ /*excludeGlobals*/
161425
+ false
161426
+ );
161427
+ return !!globalType && globalType === type.target.symbol;
161428
+ }
161429
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
161430
+ if (!type.aliasSymbol) {
161431
+ return false;
161432
+ }
161433
+ const referenceName = type.aliasSymbol.name;
161434
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161435
+ return false;
161436
+ }
161437
+ const globalType = typeChecker.resolveName(
161438
+ referenceName,
161439
+ /*location*/
161440
+ void 0,
161441
+ 788968 /* Type */,
161442
+ /*excludeGlobals*/
161443
+ false
161444
+ );
161445
+ return !!globalType && globalType === type.aliasSymbol;
161446
+ }
161447
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
161448
+ var _a, _b;
161449
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
161450
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
161451
+ }
161452
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
161453
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
161454
+ }
161455
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
161456
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
161457
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
161458
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
161459
+ }
161460
+ }
161461
+ return [];
161462
+ }
161409
161463
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
161410
161464
  const node = getTouchingPropertyName(sourceFile, position);
161411
161465
  if (node === sourceFile) {
@@ -161431,8 +161485,8 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161431
161485
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
161432
161486
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
161433
161487
  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;
161488
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
161489
+ 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
161490
  }
161437
161491
  function definitionFromType(type, checker, node, failedAliasResolution) {
161438
161492
  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
@@ -161649,10 +161703,32 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161649
161703
  return false;
161650
161704
  }
161651
161705
  }
161706
+ var typesWithUnwrappedTypeArguments;
161652
161707
  var init_goToDefinition = __esm({
161653
161708
  "src/services/goToDefinition.ts"() {
161654
161709
  "use strict";
161655
161710
  init_ts4();
161711
+ typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
161712
+ "Array",
161713
+ "ArrayLike",
161714
+ "ReadonlyArray",
161715
+ "Promise",
161716
+ "PromiseLike",
161717
+ "Iterable",
161718
+ "IterableIterator",
161719
+ "AsyncIterable",
161720
+ "Set",
161721
+ "WeakSet",
161722
+ "ReadonlySet",
161723
+ "Map",
161724
+ "WeakMap",
161725
+ "ReadonlyMap",
161726
+ "Partial",
161727
+ "Required",
161728
+ "Readonly",
161729
+ "Pick",
161730
+ "Omit"
161731
+ ]);
161656
161732
  }
161657
161733
  });
161658
161734
 
@@ -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.20230516`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -69452,6 +69452,7 @@ ${lanes.join("\n")}
69452
69452
  case 9 /* NumericLiteral */:
69453
69453
  case 10 /* BigIntLiteral */:
69454
69454
  case 15 /* NoSubstitutionTemplateLiteral */:
69455
+ case 227 /* TemplateExpression */:
69455
69456
  case 112 /* TrueKeyword */:
69456
69457
  case 97 /* FalseKeyword */:
69457
69458
  case 106 /* NullKeyword */:
@@ -76253,11 +76254,15 @@ ${lanes.join("\n")}
76253
76254
  texts.push(span.literal.text);
76254
76255
  types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);
76255
76256
  }
76256
- return isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
+ if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(
76257
76258
  node,
76258
76259
  /*contextFlags*/
76259
76260
  void 0
76260
- ) || unknownType, isTemplateLiteralContextualType) ? getTemplateLiteralType(texts, types) : stringType;
76261
+ ) || unknownType, isTemplateLiteralContextualType)) {
76262
+ return getTemplateLiteralType(texts, types);
76263
+ }
76264
+ const evaluated = node.parent.kind !== 214 /* TaggedTemplateExpression */ && evaluateTemplateExpression(node);
76265
+ return evaluated ? getFreshTypeOfLiteralType(getStringLiteralType(evaluated)) : stringType;
76261
76266
  }
76262
76267
  function isTemplateLiteralContextualType(type) {
76263
76268
  return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));
@@ -81235,11 +81240,11 @@ ${lanes.join("\n")}
81235
81240
  );
81236
81241
  if (symbol) {
81237
81242
  if (symbol.flags & 8 /* EnumMember */) {
81238
- return evaluateEnumMember(expr, symbol, location);
81243
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81239
81244
  }
81240
81245
  if (isConstVariable(symbol)) {
81241
81246
  const declaration = symbol.valueDeclaration;
81242
- if (declaration && !declaration.type && declaration.initializer && declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location)) {
81247
+ if (declaration && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {
81243
81248
  return evaluate(declaration.initializer, declaration);
81244
81249
  }
81245
81250
  }
@@ -81259,7 +81264,7 @@ ${lanes.join("\n")}
81259
81264
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
81260
81265
  const member = rootSymbol.exports.get(name);
81261
81266
  if (member) {
81262
- return evaluateEnumMember(expr, member, location);
81267
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81263
81268
  }
81264
81269
  }
81265
81270
  }
@@ -161421,6 +161426,55 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161421
161426
  }
161422
161427
  return void 0;
161423
161428
  }
161429
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {
161430
+ const referenceName = type.symbol.name;
161431
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161432
+ return false;
161433
+ }
161434
+ const globalType = typeChecker.resolveName(
161435
+ referenceName,
161436
+ /*location*/
161437
+ void 0,
161438
+ 788968 /* Type */,
161439
+ /*excludeGlobals*/
161440
+ false
161441
+ );
161442
+ return !!globalType && globalType === type.target.symbol;
161443
+ }
161444
+ function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {
161445
+ if (!type.aliasSymbol) {
161446
+ return false;
161447
+ }
161448
+ const referenceName = type.aliasSymbol.name;
161449
+ if (!typesWithUnwrappedTypeArguments.has(referenceName)) {
161450
+ return false;
161451
+ }
161452
+ const globalType = typeChecker.resolveName(
161453
+ referenceName,
161454
+ /*location*/
161455
+ void 0,
161456
+ 788968 /* Type */,
161457
+ /*excludeGlobals*/
161458
+ false
161459
+ );
161460
+ return !!globalType && globalType === type.aliasSymbol;
161461
+ }
161462
+ function getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {
161463
+ var _a, _b;
161464
+ if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {
161465
+ return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);
161466
+ }
161467
+ if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {
161468
+ return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);
161469
+ }
161470
+ if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {
161471
+ const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];
161472
+ if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {
161473
+ return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);
161474
+ }
161475
+ }
161476
+ return [];
161477
+ }
161424
161478
  function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {
161425
161479
  const node = getTouchingPropertyName(sourceFile, position);
161426
161480
  if (node === sourceFile) {
@@ -161446,8 +161500,8 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161446
161500
  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);
161447
161501
  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);
161448
161502
  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;
161503
+ const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];
161504
+ 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
161505
  }
161452
161506
  function definitionFromType(type, checker, node, failedAliasResolution) {
161453
161507
  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
@@ -161664,10 +161718,32 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161664
161718
  return false;
161665
161719
  }
161666
161720
  }
161721
+ var typesWithUnwrappedTypeArguments;
161667
161722
  var init_goToDefinition = __esm({
161668
161723
  "src/services/goToDefinition.ts"() {
161669
161724
  "use strict";
161670
161725
  init_ts4();
161726
+ typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
161727
+ "Array",
161728
+ "ArrayLike",
161729
+ "ReadonlyArray",
161730
+ "Promise",
161731
+ "PromiseLike",
161732
+ "Iterable",
161733
+ "IterableIterator",
161734
+ "AsyncIterable",
161735
+ "Set",
161736
+ "WeakSet",
161737
+ "ReadonlySet",
161738
+ "Map",
161739
+ "WeakMap",
161740
+ "ReadonlyMap",
161741
+ "Partial",
161742
+ "Required",
161743
+ "Readonly",
161744
+ "Pick",
161745
+ "Omit"
161746
+ ]);
161671
161747
  }
161672
161748
  });
161673
161749
 
@@ -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.20230516`;
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.20230516",
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": "58f030072ed41e3428c658a83579bdb880ef6886"
117
117
  }