typescript 5.2.0-dev.20230725 → 5.2.0-dev.20230726

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
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.2";
21
- var version = `${versionMajorMinor}.0-dev.20230725`;
21
+ var version = `${versionMajorMinor}.0-dev.20230726`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -5764,6 +5764,7 @@ var Diagnostics = {
5764
5764
  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
5765
5765
  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
5766
5766
  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
5767
+ The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise<T> type."),
5767
5768
  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
5768
5769
  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
5769
5770
  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
@@ -74986,7 +74987,18 @@ function createTypeChecker(host) {
74986
74987
  addLazyDiagnostic(checkSignatureDeclarationDiagnostics);
74987
74988
  function checkSignatureDeclarationDiagnostics() {
74988
74989
  checkCollisionWithArgumentsInGeneratedCode(node);
74989
- const returnTypeNode = getEffectiveReturnTypeNode(node);
74990
+ let returnTypeNode = getEffectiveReturnTypeNode(node);
74991
+ let returnTypeErrorLocation = returnTypeNode;
74992
+ if (isInJSFile(node)) {
74993
+ const typeTag = getJSDocTypeTag(node);
74994
+ if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {
74995
+ const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));
74996
+ if (signature && signature.declaration) {
74997
+ returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);
74998
+ returnTypeErrorLocation = typeTag.typeExpression.type;
74999
+ }
75000
+ }
75001
+ }
74990
75002
  if (noImplicitAny && !returnTypeNode) {
74991
75003
  switch (node.kind) {
74992
75004
  case 180 /* ConstructSignature */:
@@ -74997,21 +75009,21 @@ function createTypeChecker(host) {
74997
75009
  break;
74998
75010
  }
74999
75011
  }
75000
- if (returnTypeNode) {
75012
+ if (returnTypeNode && returnTypeErrorLocation) {
75001
75013
  const functionFlags2 = getFunctionFlags(node);
75002
75014
  if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {
75003
75015
  const returnType = getTypeFromTypeNode(returnTypeNode);
75004
75016
  if (returnType === voidType) {
75005
- error(returnTypeNode, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
75017
+ error(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
75006
75018
  } else {
75007
75019
  const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || anyType;
75008
75020
  const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || generatorYieldType;
75009
75021
  const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || unknownType;
75010
75022
  const generatorInstantiation = createGeneratorReturnType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags2 & 2 /* Async */));
75011
- checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeNode);
75023
+ checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeErrorLocation);
75012
75024
  }
75013
75025
  } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {
75014
- checkAsyncFunctionReturnType(node, returnTypeNode);
75026
+ checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);
75015
75027
  }
75016
75028
  }
75017
75029
  if (node.kind !== 181 /* IndexSignature */ && node.kind !== 324 /* JSDocFunctionType */) {
@@ -76093,7 +76105,7 @@ function createTypeChecker(host) {
76093
76105
  }
76094
76106
  return typeAsAwaitable.awaitedTypeOfType = type;
76095
76107
  }
76096
- function checkAsyncFunctionReturnType(node, returnTypeNode) {
76108
+ function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {
76097
76109
  const returnType = getTypeFromTypeNode(returnTypeNode);
76098
76110
  if (languageVersion >= 2 /* ES2015 */) {
76099
76111
  if (isErrorType(returnType)) {
@@ -76104,7 +76116,7 @@ function createTypeChecker(host) {
76104
76116
  true
76105
76117
  );
76106
76118
  if (globalPromiseType !== emptyGenericType && !isReferenceToType(returnType, globalPromiseType)) {
76107
- error(returnTypeNode, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
76119
+ reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
76108
76120
  return;
76109
76121
  }
76110
76122
  } else {
@@ -76114,7 +76126,7 @@ function createTypeChecker(host) {
76114
76126
  }
76115
76127
  const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);
76116
76128
  if (promiseConstructorName === void 0) {
76117
- error(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, typeToString(returnType));
76129
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));
76118
76130
  return;
76119
76131
  }
76120
76132
  const promiseConstructorSymbol = resolveEntityName(
@@ -76129,9 +76141,9 @@ function createTypeChecker(host) {
76129
76141
  /*reportErrors*/
76130
76142
  false
76131
76143
  )) {
76132
- error(returnTypeNode, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
76144
+ error(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
76133
76145
  } else {
76134
- error(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
76146
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
76135
76147
  }
76136
76148
  return;
76137
76149
  }
@@ -76140,15 +76152,16 @@ function createTypeChecker(host) {
76140
76152
  true
76141
76153
  );
76142
76154
  if (globalPromiseConstructorLikeType === emptyObjectType) {
76143
- error(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
76155
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
76144
76156
  return;
76145
76157
  }
76146
- if (!checkTypeAssignableTo(
76147
- promiseConstructorType,
76148
- globalPromiseConstructorLikeType,
76149
- returnTypeNode,
76150
- Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value
76151
- )) {
76158
+ const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;
76159
+ const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(
76160
+ /*details*/
76161
+ void 0,
76162
+ Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type
76163
+ );
76164
+ if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {
76152
76165
  return;
76153
76166
  }
76154
76167
  const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);
@@ -76170,6 +76183,14 @@ function createTypeChecker(host) {
76170
76183
  node,
76171
76184
  Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member
76172
76185
  );
76186
+ function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {
76187
+ if (returnTypeNode2 === returnTypeErrorLocation2) {
76188
+ error(returnTypeErrorLocation2, message, typeName);
76189
+ } else {
76190
+ const diag2 = error(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);
76191
+ addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));
76192
+ }
76193
+ }
76173
76194
  }
76174
76195
  function checkDecorator(node) {
76175
76196
  const signature = getResolvedSignature(node);
package/lib/tsserver.js CHANGED
@@ -2329,7 +2329,7 @@ module.exports = __toCommonJS(server_exports);
2329
2329
 
2330
2330
  // src/compiler/corePublic.ts
2331
2331
  var versionMajorMinor = "5.2";
2332
- var version = `${versionMajorMinor}.0-dev.20230725`;
2332
+ var version = `${versionMajorMinor}.0-dev.20230726`;
2333
2333
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2334
2334
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2335
2335
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -9287,6 +9287,7 @@ var Diagnostics = {
9287
9287
  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
9288
9288
  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
9289
9289
  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
9290
+ The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise<T> type."),
9290
9291
  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
9291
9292
  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
9292
9293
  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
@@ -79695,7 +79696,18 @@ function createTypeChecker(host) {
79695
79696
  addLazyDiagnostic(checkSignatureDeclarationDiagnostics);
79696
79697
  function checkSignatureDeclarationDiagnostics() {
79697
79698
  checkCollisionWithArgumentsInGeneratedCode(node);
79698
- const returnTypeNode = getEffectiveReturnTypeNode(node);
79699
+ let returnTypeNode = getEffectiveReturnTypeNode(node);
79700
+ let returnTypeErrorLocation = returnTypeNode;
79701
+ if (isInJSFile(node)) {
79702
+ const typeTag = getJSDocTypeTag(node);
79703
+ if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {
79704
+ const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));
79705
+ if (signature && signature.declaration) {
79706
+ returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);
79707
+ returnTypeErrorLocation = typeTag.typeExpression.type;
79708
+ }
79709
+ }
79710
+ }
79699
79711
  if (noImplicitAny && !returnTypeNode) {
79700
79712
  switch (node.kind) {
79701
79713
  case 180 /* ConstructSignature */:
@@ -79706,21 +79718,21 @@ function createTypeChecker(host) {
79706
79718
  break;
79707
79719
  }
79708
79720
  }
79709
- if (returnTypeNode) {
79721
+ if (returnTypeNode && returnTypeErrorLocation) {
79710
79722
  const functionFlags2 = getFunctionFlags(node);
79711
79723
  if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {
79712
79724
  const returnType = getTypeFromTypeNode(returnTypeNode);
79713
79725
  if (returnType === voidType) {
79714
- error2(returnTypeNode, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
79726
+ error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
79715
79727
  } else {
79716
79728
  const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || anyType;
79717
79729
  const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || generatorYieldType;
79718
79730
  const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || unknownType;
79719
79731
  const generatorInstantiation = createGeneratorReturnType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags2 & 2 /* Async */));
79720
- checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeNode);
79732
+ checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeErrorLocation);
79721
79733
  }
79722
79734
  } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {
79723
- checkAsyncFunctionReturnType(node, returnTypeNode);
79735
+ checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);
79724
79736
  }
79725
79737
  }
79726
79738
  if (node.kind !== 181 /* IndexSignature */ && node.kind !== 324 /* JSDocFunctionType */) {
@@ -80802,7 +80814,7 @@ function createTypeChecker(host) {
80802
80814
  }
80803
80815
  return typeAsAwaitable.awaitedTypeOfType = type;
80804
80816
  }
80805
- function checkAsyncFunctionReturnType(node, returnTypeNode) {
80817
+ function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {
80806
80818
  const returnType = getTypeFromTypeNode(returnTypeNode);
80807
80819
  if (languageVersion >= 2 /* ES2015 */) {
80808
80820
  if (isErrorType(returnType)) {
@@ -80813,7 +80825,7 @@ function createTypeChecker(host) {
80813
80825
  true
80814
80826
  );
80815
80827
  if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) {
80816
- error2(returnTypeNode, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
80828
+ reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
80817
80829
  return;
80818
80830
  }
80819
80831
  } else {
@@ -80823,7 +80835,7 @@ function createTypeChecker(host) {
80823
80835
  }
80824
80836
  const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);
80825
80837
  if (promiseConstructorName === void 0) {
80826
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, typeToString(returnType));
80838
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));
80827
80839
  return;
80828
80840
  }
80829
80841
  const promiseConstructorSymbol = resolveEntityName(
@@ -80838,9 +80850,9 @@ function createTypeChecker(host) {
80838
80850
  /*reportErrors*/
80839
80851
  false
80840
80852
  )) {
80841
- error2(returnTypeNode, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
80853
+ error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
80842
80854
  } else {
80843
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
80855
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
80844
80856
  }
80845
80857
  return;
80846
80858
  }
@@ -80849,15 +80861,16 @@ function createTypeChecker(host) {
80849
80861
  true
80850
80862
  );
80851
80863
  if (globalPromiseConstructorLikeType === emptyObjectType) {
80852
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
80864
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
80853
80865
  return;
80854
80866
  }
80855
- if (!checkTypeAssignableTo(
80856
- promiseConstructorType,
80857
- globalPromiseConstructorLikeType,
80858
- returnTypeNode,
80859
- Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value
80860
- )) {
80867
+ const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;
80868
+ const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(
80869
+ /*details*/
80870
+ void 0,
80871
+ Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type
80872
+ );
80873
+ if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {
80861
80874
  return;
80862
80875
  }
80863
80876
  const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);
@@ -80879,6 +80892,14 @@ function createTypeChecker(host) {
80879
80892
  node,
80880
80893
  Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member
80881
80894
  );
80895
+ function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {
80896
+ if (returnTypeNode2 === returnTypeErrorLocation2) {
80897
+ error2(returnTypeErrorLocation2, message, typeName);
80898
+ } else {
80899
+ const diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);
80900
+ addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));
80901
+ }
80902
+ }
80882
80903
  }
80883
80904
  function checkDecorator(node) {
80884
80905
  const signature = getResolvedSignature(node);
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.2";
38
- version = `${versionMajorMinor}.0-dev.20230725`;
38
+ version = `${versionMajorMinor}.0-dev.20230726`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -7068,6 +7068,7 @@ ${lanes.join("\n")}
7068
7068
  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
7069
7069
  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
7070
7070
  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
7071
+ The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise<T> type."),
7071
7072
  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
7072
7073
  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
7073
7074
  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
@@ -77460,7 +77461,18 @@ ${lanes.join("\n")}
77460
77461
  addLazyDiagnostic(checkSignatureDeclarationDiagnostics);
77461
77462
  function checkSignatureDeclarationDiagnostics() {
77462
77463
  checkCollisionWithArgumentsInGeneratedCode(node);
77463
- const returnTypeNode = getEffectiveReturnTypeNode(node);
77464
+ let returnTypeNode = getEffectiveReturnTypeNode(node);
77465
+ let returnTypeErrorLocation = returnTypeNode;
77466
+ if (isInJSFile(node)) {
77467
+ const typeTag = getJSDocTypeTag(node);
77468
+ if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {
77469
+ const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));
77470
+ if (signature && signature.declaration) {
77471
+ returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);
77472
+ returnTypeErrorLocation = typeTag.typeExpression.type;
77473
+ }
77474
+ }
77475
+ }
77464
77476
  if (noImplicitAny && !returnTypeNode) {
77465
77477
  switch (node.kind) {
77466
77478
  case 180 /* ConstructSignature */:
@@ -77471,21 +77483,21 @@ ${lanes.join("\n")}
77471
77483
  break;
77472
77484
  }
77473
77485
  }
77474
- if (returnTypeNode) {
77486
+ if (returnTypeNode && returnTypeErrorLocation) {
77475
77487
  const functionFlags2 = getFunctionFlags(node);
77476
77488
  if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {
77477
77489
  const returnType = getTypeFromTypeNode(returnTypeNode);
77478
77490
  if (returnType === voidType) {
77479
- error2(returnTypeNode, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
77491
+ error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
77480
77492
  } else {
77481
77493
  const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || anyType;
77482
77494
  const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || generatorYieldType;
77483
77495
  const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || unknownType;
77484
77496
  const generatorInstantiation = createGeneratorReturnType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags2 & 2 /* Async */));
77485
- checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeNode);
77497
+ checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeErrorLocation);
77486
77498
  }
77487
77499
  } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {
77488
- checkAsyncFunctionReturnType(node, returnTypeNode);
77500
+ checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);
77489
77501
  }
77490
77502
  }
77491
77503
  if (node.kind !== 181 /* IndexSignature */ && node.kind !== 324 /* JSDocFunctionType */) {
@@ -78567,7 +78579,7 @@ ${lanes.join("\n")}
78567
78579
  }
78568
78580
  return typeAsAwaitable.awaitedTypeOfType = type;
78569
78581
  }
78570
- function checkAsyncFunctionReturnType(node, returnTypeNode) {
78582
+ function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {
78571
78583
  const returnType = getTypeFromTypeNode(returnTypeNode);
78572
78584
  if (languageVersion >= 2 /* ES2015 */) {
78573
78585
  if (isErrorType(returnType)) {
@@ -78578,7 +78590,7 @@ ${lanes.join("\n")}
78578
78590
  true
78579
78591
  );
78580
78592
  if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) {
78581
- error2(returnTypeNode, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
78593
+ reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
78582
78594
  return;
78583
78595
  }
78584
78596
  } else {
@@ -78588,7 +78600,7 @@ ${lanes.join("\n")}
78588
78600
  }
78589
78601
  const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);
78590
78602
  if (promiseConstructorName === void 0) {
78591
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, typeToString(returnType));
78603
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));
78592
78604
  return;
78593
78605
  }
78594
78606
  const promiseConstructorSymbol = resolveEntityName(
@@ -78603,9 +78615,9 @@ ${lanes.join("\n")}
78603
78615
  /*reportErrors*/
78604
78616
  false
78605
78617
  )) {
78606
- error2(returnTypeNode, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
78618
+ error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
78607
78619
  } else {
78608
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
78620
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
78609
78621
  }
78610
78622
  return;
78611
78623
  }
@@ -78614,15 +78626,16 @@ ${lanes.join("\n")}
78614
78626
  true
78615
78627
  );
78616
78628
  if (globalPromiseConstructorLikeType === emptyObjectType) {
78617
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
78629
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
78618
78630
  return;
78619
78631
  }
78620
- if (!checkTypeAssignableTo(
78621
- promiseConstructorType,
78622
- globalPromiseConstructorLikeType,
78623
- returnTypeNode,
78624
- Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value
78625
- )) {
78632
+ const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;
78633
+ const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(
78634
+ /*details*/
78635
+ void 0,
78636
+ Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type
78637
+ );
78638
+ if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {
78626
78639
  return;
78627
78640
  }
78628
78641
  const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);
@@ -78644,6 +78657,14 @@ ${lanes.join("\n")}
78644
78657
  node,
78645
78658
  Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member
78646
78659
  );
78660
+ function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {
78661
+ if (returnTypeNode2 === returnTypeErrorLocation2) {
78662
+ error2(returnTypeErrorLocation2, message, typeName);
78663
+ } else {
78664
+ const diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);
78665
+ addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));
78666
+ }
78667
+ }
78647
78668
  }
78648
78669
  function checkDecorator(node) {
78649
78670
  const signature = getResolvedSignature(node);
package/lib/typescript.js CHANGED
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.2";
38
- version = `${versionMajorMinor}.0-dev.20230725`;
38
+ version = `${versionMajorMinor}.0-dev.20230726`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -7068,6 +7068,7 @@ ${lanes.join("\n")}
7068
7068
  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
7069
7069
  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
7070
7070
  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
7071
+ The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise<T> type."),
7071
7072
  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
7072
7073
  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
7073
7074
  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
@@ -77460,7 +77461,18 @@ ${lanes.join("\n")}
77460
77461
  addLazyDiagnostic(checkSignatureDeclarationDiagnostics);
77461
77462
  function checkSignatureDeclarationDiagnostics() {
77462
77463
  checkCollisionWithArgumentsInGeneratedCode(node);
77463
- const returnTypeNode = getEffectiveReturnTypeNode(node);
77464
+ let returnTypeNode = getEffectiveReturnTypeNode(node);
77465
+ let returnTypeErrorLocation = returnTypeNode;
77466
+ if (isInJSFile(node)) {
77467
+ const typeTag = getJSDocTypeTag(node);
77468
+ if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {
77469
+ const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));
77470
+ if (signature && signature.declaration) {
77471
+ returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);
77472
+ returnTypeErrorLocation = typeTag.typeExpression.type;
77473
+ }
77474
+ }
77475
+ }
77464
77476
  if (noImplicitAny && !returnTypeNode) {
77465
77477
  switch (node.kind) {
77466
77478
  case 180 /* ConstructSignature */:
@@ -77471,21 +77483,21 @@ ${lanes.join("\n")}
77471
77483
  break;
77472
77484
  }
77473
77485
  }
77474
- if (returnTypeNode) {
77486
+ if (returnTypeNode && returnTypeErrorLocation) {
77475
77487
  const functionFlags2 = getFunctionFlags(node);
77476
77488
  if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {
77477
77489
  const returnType = getTypeFromTypeNode(returnTypeNode);
77478
77490
  if (returnType === voidType) {
77479
- error2(returnTypeNode, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
77491
+ error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);
77480
77492
  } else {
77481
77493
  const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || anyType;
77482
77494
  const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || generatorYieldType;
77483
77495
  const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags2 & 2 /* Async */) !== 0) || unknownType;
77484
77496
  const generatorInstantiation = createGeneratorReturnType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags2 & 2 /* Async */));
77485
- checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeNode);
77497
+ checkTypeAssignableTo(generatorInstantiation, returnType, returnTypeErrorLocation);
77486
77498
  }
77487
77499
  } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {
77488
- checkAsyncFunctionReturnType(node, returnTypeNode);
77500
+ checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);
77489
77501
  }
77490
77502
  }
77491
77503
  if (node.kind !== 181 /* IndexSignature */ && node.kind !== 324 /* JSDocFunctionType */) {
@@ -78567,7 +78579,7 @@ ${lanes.join("\n")}
78567
78579
  }
78568
78580
  return typeAsAwaitable.awaitedTypeOfType = type;
78569
78581
  }
78570
- function checkAsyncFunctionReturnType(node, returnTypeNode) {
78582
+ function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {
78571
78583
  const returnType = getTypeFromTypeNode(returnTypeNode);
78572
78584
  if (languageVersion >= 2 /* ES2015 */) {
78573
78585
  if (isErrorType(returnType)) {
@@ -78578,7 +78590,7 @@ ${lanes.join("\n")}
78578
78590
  true
78579
78591
  );
78580
78592
  if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) {
78581
- error2(returnTypeNode, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
78593
+ reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));
78582
78594
  return;
78583
78595
  }
78584
78596
  } else {
@@ -78588,7 +78600,7 @@ ${lanes.join("\n")}
78588
78600
  }
78589
78601
  const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);
78590
78602
  if (promiseConstructorName === void 0) {
78591
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, typeToString(returnType));
78603
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));
78592
78604
  return;
78593
78605
  }
78594
78606
  const promiseConstructorSymbol = resolveEntityName(
@@ -78603,9 +78615,9 @@ ${lanes.join("\n")}
78603
78615
  /*reportErrors*/
78604
78616
  false
78605
78617
  )) {
78606
- error2(returnTypeNode, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
78618
+ error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);
78607
78619
  } else {
78608
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
78620
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
78609
78621
  }
78610
78622
  return;
78611
78623
  }
@@ -78614,15 +78626,16 @@ ${lanes.join("\n")}
78614
78626
  true
78615
78627
  );
78616
78628
  if (globalPromiseConstructorLikeType === emptyObjectType) {
78617
- error2(returnTypeNode, Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, entityNameToString(promiseConstructorName));
78629
+ reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));
78618
78630
  return;
78619
78631
  }
78620
- if (!checkTypeAssignableTo(
78621
- promiseConstructorType,
78622
- globalPromiseConstructorLikeType,
78623
- returnTypeNode,
78624
- Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value
78625
- )) {
78632
+ const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;
78633
+ const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(
78634
+ /*details*/
78635
+ void 0,
78636
+ Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type
78637
+ );
78638
+ if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {
78626
78639
  return;
78627
78640
  }
78628
78641
  const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);
@@ -78644,6 +78657,14 @@ ${lanes.join("\n")}
78644
78657
  node,
78645
78658
  Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member
78646
78659
  );
78660
+ function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {
78661
+ if (returnTypeNode2 === returnTypeErrorLocation2) {
78662
+ error2(returnTypeErrorLocation2, message, typeName);
78663
+ } else {
78664
+ const diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);
78665
+ addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));
78666
+ }
78667
+ }
78647
78668
  }
78648
78669
  function checkDecorator(node) {
78649
78670
  const signature = getResolvedSignature(node);
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.2";
57
- var version = `${versionMajorMinor}.0-dev.20230725`;
57
+ var version = `${versionMajorMinor}.0-dev.20230726`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
@@ -5138,6 +5138,7 @@ var Diagnostics = {
5138
5138
  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
5139
5139
  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
5140
5140
  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
5141
+ The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise<T> type."),
5141
5142
  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
5142
5143
  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
5143
5144
  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
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.2.0-dev.20230725",
5
+ "version": "5.2.0-dev.20230726",
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": "b1bec34f20690c6fdf6cc6e3d8cacee1e075f5ae"
116
+ "gitHead": "04bfd23105086276349ba6f934f04e01cab2b5a7"
117
117
  }