typescript 5.3.0-dev.20231006 → 5.3.0-dev.20231007

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.3";
21
- var version = `${versionMajorMinor}.0-dev.20231006`;
21
+ var version = `${versionMajorMinor}.0-dev.20231007`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -65740,16 +65740,7 @@ function createTypeChecker(host) {
65740
65740
  } else if (expr.kind === 221 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) {
65741
65741
  type = narrowTypeBySwitchOnTypeOf(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
65742
65742
  } else if (expr.kind === 112 /* TrueKeyword */) {
65743
- const clause = flow.switchStatement.caseBlock.clauses.find((_, index) => index === flow.clauseStart);
65744
- const clauseExpression = clause && clause.kind === 296 /* CaseClause */ ? clause.expression : void 0;
65745
- if (clauseExpression) {
65746
- type = narrowType(
65747
- type,
65748
- clauseExpression,
65749
- /*assumeTrue*/
65750
- true
65751
- );
65752
- }
65743
+ type = narrowTypeBySwitchOnTrue(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
65753
65744
  } else {
65754
65745
  if (strictNullChecks) {
65755
65746
  if (optionalChainContainsReference(expr, reference)) {
@@ -66295,6 +66286,42 @@ function createTypeChecker(host) {
66295
66286
  const clauseWitnesses = witnesses.slice(clauseStart, clauseEnd);
66296
66287
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
66297
66288
  }
66289
+ function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
66290
+ const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
66291
+ const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
66292
+ for (let i = 0; i < clauseStart; i++) {
66293
+ const clause = switchStatement.caseBlock.clauses[i];
66294
+ if (clause.kind === 296 /* CaseClause */) {
66295
+ type = narrowType(
66296
+ type,
66297
+ clause.expression,
66298
+ /*assumeTrue*/
66299
+ false
66300
+ );
66301
+ }
66302
+ }
66303
+ if (hasDefaultClause) {
66304
+ for (let i = clauseEnd; i < switchStatement.caseBlock.clauses.length; i++) {
66305
+ const clause = switchStatement.caseBlock.clauses[i];
66306
+ if (clause.kind === 296 /* CaseClause */) {
66307
+ type = narrowType(
66308
+ type,
66309
+ clause.expression,
66310
+ /*assumeTrue*/
66311
+ false
66312
+ );
66313
+ }
66314
+ }
66315
+ return type;
66316
+ }
66317
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
66318
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(
66319
+ type,
66320
+ clause.expression,
66321
+ /*assumeTrue*/
66322
+ true
66323
+ ) : neverType));
66324
+ }
66298
66325
  function isMatchingConstructorReference(expr) {
66299
66326
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
66300
66327
  }
package/lib/tsserver.js CHANGED
@@ -2328,7 +2328,7 @@ module.exports = __toCommonJS(server_exports);
2328
2328
 
2329
2329
  // src/compiler/corePublic.ts
2330
2330
  var versionMajorMinor = "5.3";
2331
- var version = `${versionMajorMinor}.0-dev.20231006`;
2331
+ var version = `${versionMajorMinor}.0-dev.20231007`;
2332
2332
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2333
2333
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2334
2334
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -70452,16 +70452,7 @@ function createTypeChecker(host) {
70452
70452
  } else if (expr.kind === 221 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) {
70453
70453
  type = narrowTypeBySwitchOnTypeOf(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
70454
70454
  } else if (expr.kind === 112 /* TrueKeyword */) {
70455
- const clause = flow.switchStatement.caseBlock.clauses.find((_, index) => index === flow.clauseStart);
70456
- const clauseExpression = clause && clause.kind === 296 /* CaseClause */ ? clause.expression : void 0;
70457
- if (clauseExpression) {
70458
- type = narrowType(
70459
- type,
70460
- clauseExpression,
70461
- /*assumeTrue*/
70462
- true
70463
- );
70464
- }
70455
+ type = narrowTypeBySwitchOnTrue(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
70465
70456
  } else {
70466
70457
  if (strictNullChecks) {
70467
70458
  if (optionalChainContainsReference(expr, reference)) {
@@ -71007,6 +70998,42 @@ function createTypeChecker(host) {
71007
70998
  const clauseWitnesses = witnesses.slice(clauseStart, clauseEnd);
71008
70999
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
71009
71000
  }
71001
+ function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
71002
+ const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
71003
+ const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
71004
+ for (let i = 0; i < clauseStart; i++) {
71005
+ const clause = switchStatement.caseBlock.clauses[i];
71006
+ if (clause.kind === 296 /* CaseClause */) {
71007
+ type = narrowType(
71008
+ type,
71009
+ clause.expression,
71010
+ /*assumeTrue*/
71011
+ false
71012
+ );
71013
+ }
71014
+ }
71015
+ if (hasDefaultClause) {
71016
+ for (let i = clauseEnd; i < switchStatement.caseBlock.clauses.length; i++) {
71017
+ const clause = switchStatement.caseBlock.clauses[i];
71018
+ if (clause.kind === 296 /* CaseClause */) {
71019
+ type = narrowType(
71020
+ type,
71021
+ clause.expression,
71022
+ /*assumeTrue*/
71023
+ false
71024
+ );
71025
+ }
71026
+ }
71027
+ return type;
71028
+ }
71029
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
71030
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(
71031
+ type,
71032
+ clause.expression,
71033
+ /*assumeTrue*/
71034
+ true
71035
+ ) : neverType));
71036
+ }
71010
71037
  function isMatchingConstructorReference(expr) {
71011
71038
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
71012
71039
  }
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.3";
38
- version = `${versionMajorMinor}.0-dev.20231006`;
38
+ version = `${versionMajorMinor}.0-dev.20231007`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -68219,16 +68219,7 @@ ${lanes.join("\n")}
68219
68219
  } else if (expr.kind === 221 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) {
68220
68220
  type = narrowTypeBySwitchOnTypeOf(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
68221
68221
  } else if (expr.kind === 112 /* TrueKeyword */) {
68222
- const clause = flow.switchStatement.caseBlock.clauses.find((_, index) => index === flow.clauseStart);
68223
- const clauseExpression = clause && clause.kind === 296 /* CaseClause */ ? clause.expression : void 0;
68224
- if (clauseExpression) {
68225
- type = narrowType(
68226
- type,
68227
- clauseExpression,
68228
- /*assumeTrue*/
68229
- true
68230
- );
68231
- }
68222
+ type = narrowTypeBySwitchOnTrue(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
68232
68223
  } else {
68233
68224
  if (strictNullChecks) {
68234
68225
  if (optionalChainContainsReference(expr, reference)) {
@@ -68774,6 +68765,42 @@ ${lanes.join("\n")}
68774
68765
  const clauseWitnesses = witnesses.slice(clauseStart, clauseEnd);
68775
68766
  return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));
68776
68767
  }
68768
+ function narrowTypeBySwitchOnTrue(type, switchStatement, clauseStart, clauseEnd) {
68769
+ const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* DefaultClause */);
68770
+ const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;
68771
+ for (let i = 0; i < clauseStart; i++) {
68772
+ const clause = switchStatement.caseBlock.clauses[i];
68773
+ if (clause.kind === 296 /* CaseClause */) {
68774
+ type = narrowType(
68775
+ type,
68776
+ clause.expression,
68777
+ /*assumeTrue*/
68778
+ false
68779
+ );
68780
+ }
68781
+ }
68782
+ if (hasDefaultClause) {
68783
+ for (let i = clauseEnd; i < switchStatement.caseBlock.clauses.length; i++) {
68784
+ const clause = switchStatement.caseBlock.clauses[i];
68785
+ if (clause.kind === 296 /* CaseClause */) {
68786
+ type = narrowType(
68787
+ type,
68788
+ clause.expression,
68789
+ /*assumeTrue*/
68790
+ false
68791
+ );
68792
+ }
68793
+ }
68794
+ return type;
68795
+ }
68796
+ const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);
68797
+ return getUnionType(map(clauses, (clause) => clause.kind === 296 /* CaseClause */ ? narrowType(
68798
+ type,
68799
+ clause.expression,
68800
+ /*assumeTrue*/
68801
+ true
68802
+ ) : neverType));
68803
+ }
68777
68804
  function isMatchingConstructorReference(expr) {
68778
68805
  return (isPropertyAccessExpression(expr) && idText(expr.name) === "constructor" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === "constructor") && isMatchingReference(reference, expr.expression);
68779
68806
  }
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.3";
57
- var version = `${versionMajorMinor}.0-dev.20231006`;
57
+ var version = `${versionMajorMinor}.0-dev.20231007`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.3.0-dev.20231006",
5
+ "version": "5.3.0-dev.20231007",
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": "2e58032f067fbe0d6efbdc970b54b6d72c349aa8"
116
+ "gitHead": "d1a2e7e730cb8ebd44662ece6b263e2d4d885da2"
117
117
  }