@typescript-deploys/pr-build 5.5.0-pr-57465-61 → 5.5.0-pr-57484-5

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.5";
21
- var version = `${versionMajorMinor}.0-insiders.20240226`;
21
+ var version = `${versionMajorMinor}.0-insiders.20240227`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -56016,15 +56016,7 @@ function createTypeChecker(host) {
56016
56016
  jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);
56017
56017
  }
56018
56018
  }
56019
- if (type || jsdocPredicate) {
56020
- signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
56021
- } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType === booleanType)) {
56022
- const { declaration } = signature;
56023
- signature.resolvedTypePredicate = noTypePredicate;
56024
- signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;
56025
- } else {
56026
- signature.resolvedTypePredicate = noTypePredicate;
56027
- }
56019
+ signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
56028
56020
  }
56029
56021
  Debug.assert(!!signature.resolvedTypePredicate);
56030
56022
  }
@@ -74433,87 +74425,6 @@ function createTypeChecker(host) {
74433
74425
  return false;
74434
74426
  }
74435
74427
  }
74436
- function getTypePredicateFromBody(func) {
74437
- switch (func.kind) {
74438
- case 176 /* Constructor */:
74439
- case 177 /* GetAccessor */:
74440
- case 178 /* SetAccessor */:
74441
- return void 0;
74442
- }
74443
- const functionFlags = getFunctionFlags(func);
74444
- if (functionFlags !== 0 /* Normal */ || func.parameters.length === 0)
74445
- return void 0;
74446
- let singleReturn;
74447
- let singleReturnStatement;
74448
- if (func.body && func.body.kind !== 241 /* Block */) {
74449
- singleReturn = func.body;
74450
- } else {
74451
- if (functionHasImplicitReturn(func))
74452
- return void 0;
74453
- const bailedEarly = forEachReturnStatement(func.body, (returnStatement) => {
74454
- if (singleReturn || !returnStatement.expression)
74455
- return true;
74456
- singleReturnStatement = returnStatement;
74457
- singleReturn = returnStatement.expression;
74458
- });
74459
- if (bailedEarly || !singleReturn)
74460
- return void 0;
74461
- }
74462
- const predicate = checkIfExpressionRefinesAnyParameter(singleReturn);
74463
- if (predicate) {
74464
- const [i, type] = predicate;
74465
- const param = func.parameters[i];
74466
- if (isIdentifier(param.name)) {
74467
- return createTypePredicate(1 /* Identifier */, param.name.escapedText, i, type);
74468
- }
74469
- }
74470
- return void 0;
74471
- function checkIfExpressionRefinesAnyParameter(expr) {
74472
- expr = skipParentheses(
74473
- expr,
74474
- /*excludeJSDocTypeAssertions*/
74475
- true
74476
- );
74477
- const type = checkExpressionCached(expr);
74478
- if (type !== booleanType)
74479
- return void 0;
74480
- return forEach(func.parameters, (param, i) => {
74481
- const initType = getSymbolLinks(param.symbol).type;
74482
- if (!initType || initType === booleanType || isSymbolAssigned(param.symbol)) {
74483
- return;
74484
- }
74485
- const trueType2 = checkIfExpressionRefinesParameter(expr, param, initType);
74486
- if (trueType2) {
74487
- return [i, trueType2];
74488
- }
74489
- });
74490
- }
74491
- function checkIfExpressionRefinesParameter(expr, param, initType) {
74492
- const antecedent = expr.flowNode ?? { flags: 2 /* Start */ };
74493
- const trueCondition = {
74494
- flags: 32 /* TrueCondition */,
74495
- node: expr,
74496
- antecedent
74497
- };
74498
- const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);
74499
- if (trueType2 === initType)
74500
- return void 0;
74501
- const falseCondition = {
74502
- ...trueCondition,
74503
- flags: 64 /* FalseCondition */
74504
- };
74505
- const falseSubtype = getFlowTypeOfReference(param.name, trueType2, trueType2, func, falseCondition);
74506
- if (!isTypeIdenticalTo(falseSubtype, neverType))
74507
- return void 0;
74508
- if (singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode) {
74509
- const typeAtReturn = getFlowTypeOfReference(param.name, initType, initType, func, singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode);
74510
- if (typeAtReturn !== initType) {
74511
- return void 0;
74512
- }
74513
- }
74514
- return trueType2;
74515
- }
74516
- }
74517
74428
  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
74518
74429
  addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);
74519
74430
  return;
@@ -83095,6 +83006,15 @@ function createTypeChecker(host) {
83095
83006
  }
83096
83007
  return false;
83097
83008
  }
83009
+ function declaredParameterTypeContainsUndefined(parameter) {
83010
+ if (!parameter.type)
83011
+ return false;
83012
+ const type = getTypeFromTypeNode(parameter.type);
83013
+ return containsUndefinedType(type);
83014
+ }
83015
+ function requiresAddingImplicitUndefined(parameter) {
83016
+ return (isRequiredInitializedParameter(parameter) || isOptionalUninitializedParameterProperty(parameter)) && !declaredParameterTypeContainsUndefined(parameter);
83017
+ }
83098
83018
  function isRequiredInitializedParameter(parameter) {
83099
83019
  return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
83100
83020
  }
@@ -83454,8 +83374,7 @@ function createTypeChecker(host) {
83454
83374
  isTopLevelValueImportEqualsWithEntityName,
83455
83375
  isDeclarationVisible,
83456
83376
  isImplementationOfOverload,
83457
- isRequiredInitializedParameter,
83458
- isOptionalUninitializedParameterProperty,
83377
+ requiresAddingImplicitUndefined,
83459
83378
  isExpandoFunctionDeclaration,
83460
83379
  getPropertiesOfContainerFunction,
83461
83380
  createTypeOfDeclaration,
@@ -109163,38 +109082,41 @@ function transformDeclarations(context) {
109163
109082
  if (shouldPrintWithInitializer(node)) {
109164
109083
  return;
109165
109084
  }
109166
- const shouldUseResolverType = node.kind === 169 /* Parameter */ && (resolver.isRequiredInitializedParameter(node) || resolver.isOptionalUninitializedParameterProperty(node));
109167
- if (type && !shouldUseResolverType) {
109085
+ const shouldAddImplicitUndefined = node.kind === 169 /* Parameter */ && resolver.requiresAddingImplicitUndefined(node);
109086
+ if (type && !shouldAddImplicitUndefined) {
109168
109087
  return visitNode(type, visitDeclarationSubtree, isTypeNode);
109169
109088
  }
109170
- if (!getParseTreeNode(node)) {
109171
- return type ? visitNode(type, visitDeclarationSubtree, isTypeNode) : factory2.createKeywordTypeNode(133 /* AnyKeyword */);
109172
- }
109173
- if (node.kind === 178 /* SetAccessor */) {
109174
- return factory2.createKeywordTypeNode(133 /* AnyKeyword */);
109175
- }
109176
109089
  errorNameNode = node.name;
109177
109090
  let oldDiag;
109178
109091
  if (!suppressNewDiagnosticContexts) {
109179
109092
  oldDiag = getSymbolAccessibilityDiagnostic;
109180
109093
  getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node);
109181
109094
  }
109182
- if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) {
109183
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
109184
- }
109185
- if (node.kind === 169 /* Parameter */ || node.kind === 172 /* PropertyDeclaration */ || node.kind === 171 /* PropertySignature */) {
109186
- if (isPropertySignature(node) || !node.initializer)
109187
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType));
109188
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType) || resolver.createTypeOfExpression(node.initializer, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
109095
+ let typeNode;
109096
+ switch (node.kind) {
109097
+ case 169 /* Parameter */:
109098
+ case 171 /* PropertySignature */:
109099
+ case 172 /* PropertyDeclaration */:
109100
+ case 208 /* BindingElement */:
109101
+ case 260 /* VariableDeclaration */:
109102
+ typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldAddImplicitUndefined);
109103
+ break;
109104
+ case 262 /* FunctionDeclaration */:
109105
+ case 180 /* ConstructSignature */:
109106
+ case 173 /* MethodSignature */:
109107
+ case 174 /* MethodDeclaration */:
109108
+ case 177 /* GetAccessor */:
109109
+ case 179 /* CallSignature */:
109110
+ typeNode = resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker);
109111
+ break;
109112
+ default:
109113
+ Debug.assertNever(node);
109189
109114
  }
109190
- return cleanup(resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
109191
- function cleanup(returnValue) {
109192
- errorNameNode = void 0;
109193
- if (!suppressNewDiagnosticContexts) {
109194
- getSymbolAccessibilityDiagnostic = oldDiag;
109195
- }
109196
- return returnValue || factory2.createKeywordTypeNode(133 /* AnyKeyword */);
109115
+ errorNameNode = void 0;
109116
+ if (!suppressNewDiagnosticContexts) {
109117
+ getSymbolAccessibilityDiagnostic = oldDiag;
109197
109118
  }
109119
+ return typeNode ?? factory2.createKeywordTypeNode(133 /* AnyKeyword */);
109198
109120
  }
109199
109121
  function isDeclarationAndNotVisible(node) {
109200
109122
  node = getParseTreeNode(node);
@@ -111146,8 +111068,8 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
111146
111068
  removeComments: compilerOptions.removeComments,
111147
111069
  newLine: compilerOptions.newLine,
111148
111070
  noEmitHelpers: compilerOptions.noEmitHelpers,
111149
- module: compilerOptions.module,
111150
- target: compilerOptions.target,
111071
+ module: getEmitModuleKind(compilerOptions),
111072
+ target: getEmitScriptTarget(compilerOptions),
111151
111073
  sourceMap: compilerOptions.sourceMap,
111152
111074
  inlineSourceMap: compilerOptions.inlineSourceMap,
111153
111075
  inlineSources: compilerOptions.inlineSources,
@@ -111417,8 +111339,7 @@ var notImplementedResolver = {
111417
111339
  isLateBound: (_node) => false,
111418
111340
  collectLinkedAliases: notImplemented,
111419
111341
  isImplementationOfOverload: notImplemented,
111420
- isRequiredInitializedParameter: notImplemented,
111421
- isOptionalUninitializedParameterProperty: notImplemented,
111342
+ requiresAddingImplicitUndefined: notImplemented,
111422
111343
  isExpandoFunctionDeclaration: notImplemented,
111423
111344
  getPropertiesOfContainerFunction: notImplemented,
111424
111345
  createTypeOfDeclaration: notImplemented,
package/lib/tsserver.js CHANGED
@@ -2341,7 +2341,7 @@ module.exports = __toCommonJS(server_exports);
2341
2341
 
2342
2342
  // src/compiler/corePublic.ts
2343
2343
  var versionMajorMinor = "5.5";
2344
- var version = `${versionMajorMinor}.0-insiders.20240226`;
2344
+ var version = `${versionMajorMinor}.0-insiders.20240227`;
2345
2345
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2346
2346
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2347
2347
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -60761,15 +60761,7 @@ function createTypeChecker(host) {
60761
60761
  jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);
60762
60762
  }
60763
60763
  }
60764
- if (type || jsdocPredicate) {
60765
- signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
60766
- } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType === booleanType)) {
60767
- const { declaration } = signature;
60768
- signature.resolvedTypePredicate = noTypePredicate;
60769
- signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;
60770
- } else {
60771
- signature.resolvedTypePredicate = noTypePredicate;
60772
- }
60764
+ signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
60773
60765
  }
60774
60766
  Debug.assert(!!signature.resolvedTypePredicate);
60775
60767
  }
@@ -79178,87 +79170,6 @@ function createTypeChecker(host) {
79178
79170
  return false;
79179
79171
  }
79180
79172
  }
79181
- function getTypePredicateFromBody(func) {
79182
- switch (func.kind) {
79183
- case 176 /* Constructor */:
79184
- case 177 /* GetAccessor */:
79185
- case 178 /* SetAccessor */:
79186
- return void 0;
79187
- }
79188
- const functionFlags = getFunctionFlags(func);
79189
- if (functionFlags !== 0 /* Normal */ || func.parameters.length === 0)
79190
- return void 0;
79191
- let singleReturn;
79192
- let singleReturnStatement;
79193
- if (func.body && func.body.kind !== 241 /* Block */) {
79194
- singleReturn = func.body;
79195
- } else {
79196
- if (functionHasImplicitReturn(func))
79197
- return void 0;
79198
- const bailedEarly = forEachReturnStatement(func.body, (returnStatement) => {
79199
- if (singleReturn || !returnStatement.expression)
79200
- return true;
79201
- singleReturnStatement = returnStatement;
79202
- singleReturn = returnStatement.expression;
79203
- });
79204
- if (bailedEarly || !singleReturn)
79205
- return void 0;
79206
- }
79207
- const predicate = checkIfExpressionRefinesAnyParameter(singleReturn);
79208
- if (predicate) {
79209
- const [i, type] = predicate;
79210
- const param = func.parameters[i];
79211
- if (isIdentifier(param.name)) {
79212
- return createTypePredicate(1 /* Identifier */, param.name.escapedText, i, type);
79213
- }
79214
- }
79215
- return void 0;
79216
- function checkIfExpressionRefinesAnyParameter(expr) {
79217
- expr = skipParentheses(
79218
- expr,
79219
- /*excludeJSDocTypeAssertions*/
79220
- true
79221
- );
79222
- const type = checkExpressionCached(expr);
79223
- if (type !== booleanType)
79224
- return void 0;
79225
- return forEach(func.parameters, (param, i) => {
79226
- const initType = getSymbolLinks(param.symbol).type;
79227
- if (!initType || initType === booleanType || isSymbolAssigned(param.symbol)) {
79228
- return;
79229
- }
79230
- const trueType2 = checkIfExpressionRefinesParameter(expr, param, initType);
79231
- if (trueType2) {
79232
- return [i, trueType2];
79233
- }
79234
- });
79235
- }
79236
- function checkIfExpressionRefinesParameter(expr, param, initType) {
79237
- const antecedent = expr.flowNode ?? { flags: 2 /* Start */ };
79238
- const trueCondition = {
79239
- flags: 32 /* TrueCondition */,
79240
- node: expr,
79241
- antecedent
79242
- };
79243
- const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);
79244
- if (trueType2 === initType)
79245
- return void 0;
79246
- const falseCondition = {
79247
- ...trueCondition,
79248
- flags: 64 /* FalseCondition */
79249
- };
79250
- const falseSubtype = getFlowTypeOfReference(param.name, trueType2, trueType2, func, falseCondition);
79251
- if (!isTypeIdenticalTo(falseSubtype, neverType))
79252
- return void 0;
79253
- if (singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode) {
79254
- const typeAtReturn = getFlowTypeOfReference(param.name, initType, initType, func, singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode);
79255
- if (typeAtReturn !== initType) {
79256
- return void 0;
79257
- }
79258
- }
79259
- return trueType2;
79260
- }
79261
- }
79262
79173
  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
79263
79174
  addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);
79264
79175
  return;
@@ -87840,6 +87751,15 @@ function createTypeChecker(host) {
87840
87751
  }
87841
87752
  return false;
87842
87753
  }
87754
+ function declaredParameterTypeContainsUndefined(parameter) {
87755
+ if (!parameter.type)
87756
+ return false;
87757
+ const type = getTypeFromTypeNode(parameter.type);
87758
+ return containsUndefinedType(type);
87759
+ }
87760
+ function requiresAddingImplicitUndefined(parameter) {
87761
+ return (isRequiredInitializedParameter(parameter) || isOptionalUninitializedParameterProperty(parameter)) && !declaredParameterTypeContainsUndefined(parameter);
87762
+ }
87843
87763
  function isRequiredInitializedParameter(parameter) {
87844
87764
  return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
87845
87765
  }
@@ -88199,8 +88119,7 @@ function createTypeChecker(host) {
88199
88119
  isTopLevelValueImportEqualsWithEntityName,
88200
88120
  isDeclarationVisible,
88201
88121
  isImplementationOfOverload,
88202
- isRequiredInitializedParameter,
88203
- isOptionalUninitializedParameterProperty,
88122
+ requiresAddingImplicitUndefined,
88204
88123
  isExpandoFunctionDeclaration,
88205
88124
  getPropertiesOfContainerFunction,
88206
88125
  createTypeOfDeclaration,
@@ -114079,38 +113998,41 @@ function transformDeclarations(context) {
114079
113998
  if (shouldPrintWithInitializer(node)) {
114080
113999
  return;
114081
114000
  }
114082
- const shouldUseResolverType = node.kind === 169 /* Parameter */ && (resolver.isRequiredInitializedParameter(node) || resolver.isOptionalUninitializedParameterProperty(node));
114083
- if (type && !shouldUseResolverType) {
114001
+ const shouldAddImplicitUndefined = node.kind === 169 /* Parameter */ && resolver.requiresAddingImplicitUndefined(node);
114002
+ if (type && !shouldAddImplicitUndefined) {
114084
114003
  return visitNode(type, visitDeclarationSubtree, isTypeNode);
114085
114004
  }
114086
- if (!getParseTreeNode(node)) {
114087
- return type ? visitNode(type, visitDeclarationSubtree, isTypeNode) : factory2.createKeywordTypeNode(133 /* AnyKeyword */);
114088
- }
114089
- if (node.kind === 178 /* SetAccessor */) {
114090
- return factory2.createKeywordTypeNode(133 /* AnyKeyword */);
114091
- }
114092
114005
  errorNameNode = node.name;
114093
114006
  let oldDiag;
114094
114007
  if (!suppressNewDiagnosticContexts) {
114095
114008
  oldDiag = getSymbolAccessibilityDiagnostic;
114096
114009
  getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node);
114097
114010
  }
114098
- if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) {
114099
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
114100
- }
114101
- if (node.kind === 169 /* Parameter */ || node.kind === 172 /* PropertyDeclaration */ || node.kind === 171 /* PropertySignature */) {
114102
- if (isPropertySignature(node) || !node.initializer)
114103
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType));
114104
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType) || resolver.createTypeOfExpression(node.initializer, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
114011
+ let typeNode;
114012
+ switch (node.kind) {
114013
+ case 169 /* Parameter */:
114014
+ case 171 /* PropertySignature */:
114015
+ case 172 /* PropertyDeclaration */:
114016
+ case 208 /* BindingElement */:
114017
+ case 260 /* VariableDeclaration */:
114018
+ typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldAddImplicitUndefined);
114019
+ break;
114020
+ case 262 /* FunctionDeclaration */:
114021
+ case 180 /* ConstructSignature */:
114022
+ case 173 /* MethodSignature */:
114023
+ case 174 /* MethodDeclaration */:
114024
+ case 177 /* GetAccessor */:
114025
+ case 179 /* CallSignature */:
114026
+ typeNode = resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker);
114027
+ break;
114028
+ default:
114029
+ Debug.assertNever(node);
114105
114030
  }
114106
- return cleanup(resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
114107
- function cleanup(returnValue) {
114108
- errorNameNode = void 0;
114109
- if (!suppressNewDiagnosticContexts) {
114110
- getSymbolAccessibilityDiagnostic = oldDiag;
114111
- }
114112
- return returnValue || factory2.createKeywordTypeNode(133 /* AnyKeyword */);
114031
+ errorNameNode = void 0;
114032
+ if (!suppressNewDiagnosticContexts) {
114033
+ getSymbolAccessibilityDiagnostic = oldDiag;
114113
114034
  }
114035
+ return typeNode ?? factory2.createKeywordTypeNode(133 /* AnyKeyword */);
114114
114036
  }
114115
114037
  function isDeclarationAndNotVisible(node) {
114116
114038
  node = getParseTreeNode(node);
@@ -116073,8 +115995,8 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
116073
115995
  removeComments: compilerOptions.removeComments,
116074
115996
  newLine: compilerOptions.newLine,
116075
115997
  noEmitHelpers: compilerOptions.noEmitHelpers,
116076
- module: compilerOptions.module,
116077
- target: compilerOptions.target,
115998
+ module: getEmitModuleKind(compilerOptions),
115999
+ target: getEmitScriptTarget(compilerOptions),
116078
116000
  sourceMap: compilerOptions.sourceMap,
116079
116001
  inlineSourceMap: compilerOptions.inlineSourceMap,
116080
116002
  inlineSources: compilerOptions.inlineSources,
@@ -116344,8 +116266,7 @@ var notImplementedResolver = {
116344
116266
  isLateBound: (_node) => false,
116345
116267
  collectLinkedAliases: notImplemented,
116346
116268
  isImplementationOfOverload: notImplemented,
116347
- isRequiredInitializedParameter: notImplemented,
116348
- isOptionalUninitializedParameterProperty: notImplemented,
116269
+ requiresAddingImplicitUndefined: notImplemented,
116349
116270
  isExpandoFunctionDeclaration: notImplemented,
116350
116271
  getPropertiesOfContainerFunction: notImplemented,
116351
116272
  createTypeOfDeclaration: notImplemented,
@@ -162773,7 +162694,7 @@ function toUpperCharCode(charCode) {
162773
162694
  return charCode;
162774
162695
  }
162775
162696
  function isContextualKeywordInAutoImportableExpressionSpace(keyword) {
162776
- return keyword === "abstract" || keyword === "async" || keyword === "await" || keyword === "declare" || keyword === "module" || keyword === "namespace" || keyword === "type";
162697
+ return keyword === "abstract" || keyword === "async" || keyword === "await" || keyword === "declare" || keyword === "module" || keyword === "namespace" || keyword === "type" || keyword === "satisfies" || keyword === "as";
162777
162698
  }
162778
162699
 
162779
162700
  // src/services/_namespaces/ts.Completions.StringCompletions.ts
@@ -166915,7 +166836,7 @@ function provideInlayHints(context) {
166915
166836
  return false;
166916
166837
  }
166917
166838
  function leadingCommentsContainsParameterName(node, name) {
166918
- if (!isIdentifierText(name, compilerOptions.target, getLanguageVariant(file.scriptKind))) {
166839
+ if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions), getLanguageVariant(file.scriptKind))) {
166919
166840
  return false;
166920
166841
  }
166921
166842
  const ranges = getLeadingCommentRanges(sourceFileText, node.pos);
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.5";
38
- version = `${versionMajorMinor}.0-insiders.20240226`;
38
+ version = `${versionMajorMinor}.0-insiders.20240227`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -58515,15 +58515,7 @@ ${lanes.join("\n")}
58515
58515
  jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);
58516
58516
  }
58517
58517
  }
58518
- if (type || jsdocPredicate) {
58519
- signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
58520
- } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType === booleanType)) {
58521
- const { declaration } = signature;
58522
- signature.resolvedTypePredicate = noTypePredicate;
58523
- signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;
58524
- } else {
58525
- signature.resolvedTypePredicate = noTypePredicate;
58526
- }
58518
+ signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
58527
58519
  }
58528
58520
  Debug.assert(!!signature.resolvedTypePredicate);
58529
58521
  }
@@ -76932,87 +76924,6 @@ ${lanes.join("\n")}
76932
76924
  return false;
76933
76925
  }
76934
76926
  }
76935
- function getTypePredicateFromBody(func) {
76936
- switch (func.kind) {
76937
- case 176 /* Constructor */:
76938
- case 177 /* GetAccessor */:
76939
- case 178 /* SetAccessor */:
76940
- return void 0;
76941
- }
76942
- const functionFlags = getFunctionFlags(func);
76943
- if (functionFlags !== 0 /* Normal */ || func.parameters.length === 0)
76944
- return void 0;
76945
- let singleReturn;
76946
- let singleReturnStatement;
76947
- if (func.body && func.body.kind !== 241 /* Block */) {
76948
- singleReturn = func.body;
76949
- } else {
76950
- if (functionHasImplicitReturn(func))
76951
- return void 0;
76952
- const bailedEarly = forEachReturnStatement(func.body, (returnStatement) => {
76953
- if (singleReturn || !returnStatement.expression)
76954
- return true;
76955
- singleReturnStatement = returnStatement;
76956
- singleReturn = returnStatement.expression;
76957
- });
76958
- if (bailedEarly || !singleReturn)
76959
- return void 0;
76960
- }
76961
- const predicate = checkIfExpressionRefinesAnyParameter(singleReturn);
76962
- if (predicate) {
76963
- const [i, type] = predicate;
76964
- const param = func.parameters[i];
76965
- if (isIdentifier(param.name)) {
76966
- return createTypePredicate(1 /* Identifier */, param.name.escapedText, i, type);
76967
- }
76968
- }
76969
- return void 0;
76970
- function checkIfExpressionRefinesAnyParameter(expr) {
76971
- expr = skipParentheses(
76972
- expr,
76973
- /*excludeJSDocTypeAssertions*/
76974
- true
76975
- );
76976
- const type = checkExpressionCached(expr);
76977
- if (type !== booleanType)
76978
- return void 0;
76979
- return forEach(func.parameters, (param, i) => {
76980
- const initType = getSymbolLinks(param.symbol).type;
76981
- if (!initType || initType === booleanType || isSymbolAssigned(param.symbol)) {
76982
- return;
76983
- }
76984
- const trueType2 = checkIfExpressionRefinesParameter(expr, param, initType);
76985
- if (trueType2) {
76986
- return [i, trueType2];
76987
- }
76988
- });
76989
- }
76990
- function checkIfExpressionRefinesParameter(expr, param, initType) {
76991
- const antecedent = expr.flowNode ?? { flags: 2 /* Start */ };
76992
- const trueCondition = {
76993
- flags: 32 /* TrueCondition */,
76994
- node: expr,
76995
- antecedent
76996
- };
76997
- const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);
76998
- if (trueType2 === initType)
76999
- return void 0;
77000
- const falseCondition = {
77001
- ...trueCondition,
77002
- flags: 64 /* FalseCondition */
77003
- };
77004
- const falseSubtype = getFlowTypeOfReference(param.name, trueType2, trueType2, func, falseCondition);
77005
- if (!isTypeIdenticalTo(falseSubtype, neverType))
77006
- return void 0;
77007
- if (singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode) {
77008
- const typeAtReturn = getFlowTypeOfReference(param.name, initType, initType, func, singleReturnStatement == null ? void 0 : singleReturnStatement.flowNode);
77009
- if (typeAtReturn !== initType) {
77010
- return void 0;
77011
- }
77012
- }
77013
- return trueType2;
77014
- }
77015
- }
77016
76927
  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
77017
76928
  addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);
77018
76929
  return;
@@ -85594,6 +85505,15 @@ ${lanes.join("\n")}
85594
85505
  }
85595
85506
  return false;
85596
85507
  }
85508
+ function declaredParameterTypeContainsUndefined(parameter) {
85509
+ if (!parameter.type)
85510
+ return false;
85511
+ const type = getTypeFromTypeNode(parameter.type);
85512
+ return containsUndefinedType(type);
85513
+ }
85514
+ function requiresAddingImplicitUndefined(parameter) {
85515
+ return (isRequiredInitializedParameter(parameter) || isOptionalUninitializedParameterProperty(parameter)) && !declaredParameterTypeContainsUndefined(parameter);
85516
+ }
85597
85517
  function isRequiredInitializedParameter(parameter) {
85598
85518
  return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
85599
85519
  }
@@ -85953,8 +85873,7 @@ ${lanes.join("\n")}
85953
85873
  isTopLevelValueImportEqualsWithEntityName,
85954
85874
  isDeclarationVisible,
85955
85875
  isImplementationOfOverload,
85956
- isRequiredInitializedParameter,
85957
- isOptionalUninitializedParameterProperty,
85876
+ requiresAddingImplicitUndefined,
85958
85877
  isExpandoFunctionDeclaration,
85959
85878
  getPropertiesOfContainerFunction,
85960
85879
  createTypeOfDeclaration,
@@ -112143,38 +112062,41 @@ ${lanes.join("\n")}
112143
112062
  if (shouldPrintWithInitializer(node)) {
112144
112063
  return;
112145
112064
  }
112146
- const shouldUseResolverType = node.kind === 169 /* Parameter */ && (resolver.isRequiredInitializedParameter(node) || resolver.isOptionalUninitializedParameterProperty(node));
112147
- if (type && !shouldUseResolverType) {
112065
+ const shouldAddImplicitUndefined = node.kind === 169 /* Parameter */ && resolver.requiresAddingImplicitUndefined(node);
112066
+ if (type && !shouldAddImplicitUndefined) {
112148
112067
  return visitNode(type, visitDeclarationSubtree, isTypeNode);
112149
112068
  }
112150
- if (!getParseTreeNode(node)) {
112151
- return type ? visitNode(type, visitDeclarationSubtree, isTypeNode) : factory2.createKeywordTypeNode(133 /* AnyKeyword */);
112152
- }
112153
- if (node.kind === 178 /* SetAccessor */) {
112154
- return factory2.createKeywordTypeNode(133 /* AnyKeyword */);
112155
- }
112156
112069
  errorNameNode = node.name;
112157
112070
  let oldDiag;
112158
112071
  if (!suppressNewDiagnosticContexts) {
112159
112072
  oldDiag = getSymbolAccessibilityDiagnostic;
112160
112073
  getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node);
112161
112074
  }
112162
- if (node.kind === 260 /* VariableDeclaration */ || node.kind === 208 /* BindingElement */) {
112163
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
112164
- }
112165
- if (node.kind === 169 /* Parameter */ || node.kind === 172 /* PropertyDeclaration */ || node.kind === 171 /* PropertySignature */) {
112166
- if (isPropertySignature(node) || !node.initializer)
112167
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType));
112168
- return cleanup(resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldUseResolverType) || resolver.createTypeOfExpression(node.initializer, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
112075
+ let typeNode;
112076
+ switch (node.kind) {
112077
+ case 169 /* Parameter */:
112078
+ case 171 /* PropertySignature */:
112079
+ case 172 /* PropertyDeclaration */:
112080
+ case 208 /* BindingElement */:
112081
+ case 260 /* VariableDeclaration */:
112082
+ typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker, shouldAddImplicitUndefined);
112083
+ break;
112084
+ case 262 /* FunctionDeclaration */:
112085
+ case 180 /* ConstructSignature */:
112086
+ case 173 /* MethodSignature */:
112087
+ case 174 /* MethodDeclaration */:
112088
+ case 177 /* GetAccessor */:
112089
+ case 179 /* CallSignature */:
112090
+ typeNode = resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker);
112091
+ break;
112092
+ default:
112093
+ Debug.assertNever(node);
112169
112094
  }
112170
- return cleanup(resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker));
112171
- function cleanup(returnValue) {
112172
- errorNameNode = void 0;
112173
- if (!suppressNewDiagnosticContexts) {
112174
- getSymbolAccessibilityDiagnostic = oldDiag;
112175
- }
112176
- return returnValue || factory2.createKeywordTypeNode(133 /* AnyKeyword */);
112095
+ errorNameNode = void 0;
112096
+ if (!suppressNewDiagnosticContexts) {
112097
+ getSymbolAccessibilityDiagnostic = oldDiag;
112177
112098
  }
112099
+ return typeNode ?? factory2.createKeywordTypeNode(133 /* AnyKeyword */);
112178
112100
  }
112179
112101
  function isDeclarationAndNotVisible(node) {
112180
112102
  node = getParseTreeNode(node);
@@ -114153,8 +114075,8 @@ ${lanes.join("\n")}
114153
114075
  removeComments: compilerOptions.removeComments,
114154
114076
  newLine: compilerOptions.newLine,
114155
114077
  noEmitHelpers: compilerOptions.noEmitHelpers,
114156
- module: compilerOptions.module,
114157
- target: compilerOptions.target,
114078
+ module: getEmitModuleKind(compilerOptions),
114079
+ target: getEmitScriptTarget(compilerOptions),
114158
114080
  sourceMap: compilerOptions.sourceMap,
114159
114081
  inlineSourceMap: compilerOptions.inlineSourceMap,
114160
114082
  inlineSources: compilerOptions.inlineSources,
@@ -119293,8 +119215,7 @@ ${lanes.join("\n")}
119293
119215
  isLateBound: (_node) => false,
119294
119216
  collectLinkedAliases: notImplemented,
119295
119217
  isImplementationOfOverload: notImplemented,
119296
- isRequiredInitializedParameter: notImplemented,
119297
- isOptionalUninitializedParameterProperty: notImplemented,
119218
+ requiresAddingImplicitUndefined: notImplemented,
119298
119219
  isExpandoFunctionDeclaration: notImplemented,
119299
119220
  getPropertiesOfContainerFunction: notImplemented,
119300
119221
  createTypeOfDeclaration: notImplemented,
@@ -161973,7 +161894,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161973
161894
  return charCode;
161974
161895
  }
161975
161896
  function isContextualKeywordInAutoImportableExpressionSpace(keyword) {
161976
- return keyword === "abstract" || keyword === "async" || keyword === "await" || keyword === "declare" || keyword === "module" || keyword === "namespace" || keyword === "type";
161897
+ return keyword === "abstract" || keyword === "async" || keyword === "await" || keyword === "declare" || keyword === "module" || keyword === "namespace" || keyword === "type" || keyword === "satisfies" || keyword === "as";
161977
161898
  }
161978
161899
  var moduleSpecifierResolutionLimit, moduleSpecifierResolutionCacheAttemptLimit, SortText, CompletionSource, SymbolOriginInfoKind, CompletionKind, _keywordCompletions, allKeywordsCompletions;
161979
161900
  var init_completions = __esm({
@@ -166260,7 +166181,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
166260
166181
  return false;
166261
166182
  }
166262
166183
  function leadingCommentsContainsParameterName(node, name) {
166263
- if (!isIdentifierText(name, compilerOptions.target, getLanguageVariant(file.scriptKind))) {
166184
+ if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions), getLanguageVariant(file.scriptKind))) {
166264
166185
  return false;
166265
166186
  }
166266
166187
  const ranges = getLeadingCommentRanges(sourceFileText, node.pos);
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.5";
57
- var version = `${versionMajorMinor}.0-insiders.20240226`;
57
+ var version = `${versionMajorMinor}.0-insiders.20240227`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typescript-deploys/pr-build",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.5.0-pr-57465-61",
5
+ "version": "5.5.0-pr-57484-5",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -114,5 +114,5 @@
114
114
  "node": "20.1.0",
115
115
  "npm": "8.19.4"
116
116
  },
117
- "gitHead": "e0aafed543a12f997ca524e0c08c1797d6be4ca7"
117
+ "gitHead": "d62138045517ed5d430ae0b05a67393e694e3827"
118
118
  }