@typescript-deploys/pr-build 5.3.0-pr-55991-5 → 5.3.0-pr-55991-17

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
@@ -66257,18 +66257,40 @@ function createTypeChecker(host) {
66257
66257
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
66258
66258
  }
66259
66259
  function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
66260
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
66260
66261
  const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
66261
66262
  const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
66262
66263
  if (hasDefaultClause) {
66263
- return type;
66264
+ const clausesBefore = switchStatement.caseBlock.clauses.slice(0, clauseStart);
66265
+ const before = narrowTypeForClauses(
66266
+ type,
66267
+ clausesBefore,
66268
+ /*assumeTrue*/
66269
+ false
66270
+ );
66271
+ const clausesAfter = switchStatement.caseBlock.clauses.slice(clauseEnd);
66272
+ const after = narrowTypeForClauses(
66273
+ type,
66274
+ clausesAfter,
66275
+ /*assumeTrue*/
66276
+ false
66277
+ );
66278
+ return getUnionType([narrowTypeForClauses(
66279
+ type,
66280
+ clauses,
66281
+ /*assumeTrue*/
66282
+ true
66283
+ ), before, after]);
66264
66284
  }
66265
- const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
66266
- return getUnionType(map(clauses, (clause) => clause && clause.kind === 296 /* CaseClause */ ? narrowType(
66285
+ return narrowTypeForClauses(
66267
66286
  type,
66268
- clause.expression,
66287
+ clauses,
66269
66288
  /*assumeTrue*/
66270
66289
  true
66271
- ) : neverType));
66290
+ );
66291
+ }
66292
+ function narrowTypeForClauses(type, clauses, assumeTrue) {
66293
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(type, clause.expression, assumeTrue) : neverType));
66272
66294
  }
66273
66295
  function isMatchingConstructorReference(expr) {
66274
66296
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
package/lib/tsserver.js CHANGED
@@ -70969,18 +70969,40 @@ function createTypeChecker(host) {
70969
70969
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
70970
70970
  }
70971
70971
  function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
70972
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
70972
70973
  const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
70973
70974
  const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
70974
70975
  if (hasDefaultClause) {
70975
- return type;
70976
+ const clausesBefore = switchStatement.caseBlock.clauses.slice(0, clauseStart);
70977
+ const before = narrowTypeForClauses(
70978
+ type,
70979
+ clausesBefore,
70980
+ /*assumeTrue*/
70981
+ false
70982
+ );
70983
+ const clausesAfter = switchStatement.caseBlock.clauses.slice(clauseEnd);
70984
+ const after = narrowTypeForClauses(
70985
+ type,
70986
+ clausesAfter,
70987
+ /*assumeTrue*/
70988
+ false
70989
+ );
70990
+ return getUnionType([narrowTypeForClauses(
70991
+ type,
70992
+ clauses,
70993
+ /*assumeTrue*/
70994
+ true
70995
+ ), before, after]);
70976
70996
  }
70977
- const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
70978
- return getUnionType(map(clauses, (clause) => clause && clause.kind === 296 /* CaseClause */ ? narrowType(
70997
+ return narrowTypeForClauses(
70979
70998
  type,
70980
- clause.expression,
70999
+ clauses,
70981
71000
  /*assumeTrue*/
70982
71001
  true
70983
- ) : neverType));
71002
+ );
71003
+ }
71004
+ function narrowTypeForClauses(type, clauses, assumeTrue) {
71005
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(type, clause.expression, assumeTrue) : neverType));
70984
71006
  }
70985
71007
  function isMatchingConstructorReference(expr) {
70986
71008
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
package/lib/typescript.js CHANGED
@@ -68736,18 +68736,40 @@ ${lanes.join("\n")}
68736
68736
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
68737
68737
  }
68738
68738
  function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
68739
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
68739
68740
  const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
68740
68741
  const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
68741
68742
  if (hasDefaultClause) {
68742
- return type;
68743
+ const clausesBefore = switchStatement.caseBlock.clauses.slice(0, clauseStart);
68744
+ const before = narrowTypeForClauses(
68745
+ type,
68746
+ clausesBefore,
68747
+ /*assumeTrue*/
68748
+ false
68749
+ );
68750
+ const clausesAfter = switchStatement.caseBlock.clauses.slice(clauseEnd);
68751
+ const after = narrowTypeForClauses(
68752
+ type,
68753
+ clausesAfter,
68754
+ /*assumeTrue*/
68755
+ false
68756
+ );
68757
+ return getUnionType([narrowTypeForClauses(
68758
+ type,
68759
+ clauses,
68760
+ /*assumeTrue*/
68761
+ true
68762
+ ), before, after]);
68743
68763
  }
68744
- const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
68745
- return getUnionType(map(clauses, (clause) => clause && clause.kind === 296 /* CaseClause */ ? narrowType(
68764
+ return narrowTypeForClauses(
68746
68765
  type,
68747
- clause.expression,
68766
+ clauses,
68748
68767
  /*assumeTrue*/
68749
68768
  true
68750
- ) : neverType));
68769
+ );
68770
+ }
68771
+ function narrowTypeForClauses(type, clauses, assumeTrue) {
68772
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(type, clause.expression, assumeTrue) : neverType));
68751
68773
  }
68752
68774
  function isMatchingConstructorReference(expr) {
68753
68775
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
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.3.0-pr-55991-5",
5
+ "version": "5.3.0-pr-55991-17",
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": "d6e8e9dfe6243d3e73908b31287e71991fedfad1"
117
+ "gitHead": "ede4ae5499d66a800949ef0f866fa6790c05ac54"
118
118
  }