typescript 5.2.0-dev.20230719 → 5.2.0-dev.20230721

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.20230719`;
21
+ var version = `${versionMajorMinor}.0-dev.20230721`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -17404,6 +17404,18 @@ function getTextOfJsxNamespacedName(node) {
17404
17404
  function intrinsicTagNameToString(node) {
17405
17405
  return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);
17406
17406
  }
17407
+ function isTypeUsableAsPropertyName(type) {
17408
+ return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);
17409
+ }
17410
+ function getPropertyNameFromType(type) {
17411
+ if (type.flags & 8192 /* UniqueESSymbol */) {
17412
+ return type.escapedName;
17413
+ }
17414
+ if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {
17415
+ return escapeLeadingUnderscores("" + type.value);
17416
+ }
17417
+ return Debug.fail();
17418
+ }
17407
17419
 
17408
17420
  // src/compiler/factory/baseNodeFactory.ts
17409
17421
  function createBaseNodeFactory() {
@@ -30711,10 +30723,14 @@ var Parser;
30711
30723
  case 124 /* ProtectedKeyword */:
30712
30724
  case 125 /* PublicKeyword */:
30713
30725
  case 148 /* ReadonlyKeyword */:
30726
+ const previousToken = token();
30714
30727
  nextToken();
30715
30728
  if (scanner.hasPrecedingLineBreak()) {
30716
30729
  return false;
30717
30730
  }
30731
+ if (previousToken === 138 /* DeclareKeyword */ && token() === 156 /* TypeKeyword */) {
30732
+ return true;
30733
+ }
30718
30734
  continue;
30719
30735
  case 162 /* GlobalKeyword */:
30720
30736
  nextToken();
@@ -31079,14 +31095,14 @@ var Parser;
31079
31095
  function parseObjectBindingPattern() {
31080
31096
  const pos = getNodePos();
31081
31097
  parseExpected(19 /* OpenBraceToken */);
31082
- const elements = parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement);
31098
+ const elements = allowInAnd(() => parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement));
31083
31099
  parseExpected(20 /* CloseBraceToken */);
31084
31100
  return finishNode(factory2.createObjectBindingPattern(elements), pos);
31085
31101
  }
31086
31102
  function parseArrayBindingPattern() {
31087
31103
  const pos = getNodePos();
31088
31104
  parseExpected(23 /* OpenBracketToken */);
31089
- const elements = parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement);
31105
+ const elements = allowInAnd(() => parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement));
31090
31106
  parseExpected(24 /* CloseBracketToken */);
31091
31107
  return finishNode(factory2.createArrayBindingPattern(elements), pos);
31092
31108
  }
@@ -31604,6 +31620,9 @@ var Parser;
31604
31620
  }
31605
31621
  function parseTypeAliasDeclaration(pos, hasJSDoc, modifiers) {
31606
31622
  parseExpected(156 /* TypeKeyword */);
31623
+ if (scanner.hasPrecedingLineBreak()) {
31624
+ parseErrorAtCurrentToken(Diagnostics.Line_break_not_permitted_here);
31625
+ }
31607
31626
  const name = parseIdentifier();
31608
31627
  const typeParameters = parseTypeParameters();
31609
31628
  parseExpected(64 /* EqualsToken */);
@@ -43111,7 +43130,7 @@ function createTypeChecker(host) {
43111
43130
  return node ? getTypeFromTypeNode(node) : errorType;
43112
43131
  },
43113
43132
  getParameterType: getTypeAtPosition,
43114
- getParameterIdentifierNameAtPosition,
43133
+ getParameterIdentifierInfoAtPosition,
43115
43134
  getPromisedTypeOfPromise,
43116
43135
  getAwaitedType: (type) => getAwaitedType(type),
43117
43136
  getReturnTypeOfSignature,
@@ -44552,7 +44571,7 @@ function createTypeChecker(host) {
44552
44571
  if (name === "const" && isConstAssertion(location)) {
44553
44572
  return void 0;
44554
44573
  }
44555
- if (isModuleDeclaration(location) && lastLocation && location.name === lastLocation) {
44574
+ if (isModuleOrEnumDeclaration(location) && lastLocation && location.name === lastLocation) {
44556
44575
  lastLocation = location;
44557
44576
  location = location.parent;
44558
44577
  }
@@ -51574,7 +51593,7 @@ function createTypeChecker(host) {
51574
51593
  false,
51575
51594
  definedInMethod && !definedInConstructor
51576
51595
  ));
51577
- if (symbol.valueDeclaration && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {
51596
+ if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {
51578
51597
  reportImplicitAny(symbol.valueDeclaration, anyType);
51579
51598
  return anyType;
51580
51599
  }
@@ -52853,9 +52872,6 @@ function createTypeChecker(host) {
52853
52872
  }
52854
52873
  return type;
52855
52874
  }
52856
- function isTypeUsableAsPropertyName(type) {
52857
- return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);
52858
- }
52859
52875
  function isLateBindableName(node) {
52860
52876
  if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) {
52861
52877
  return false;
@@ -52876,15 +52892,6 @@ function createTypeChecker(host) {
52876
52892
  function isNonBindableDynamicName(node) {
52877
52893
  return isDynamicName(node) && !isLateBindableName(node);
52878
52894
  }
52879
- function getPropertyNameFromType(type) {
52880
- if (type.flags & 8192 /* UniqueESSymbol */) {
52881
- return type.escapedName;
52882
- }
52883
- if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {
52884
- return escapeLeadingUnderscores("" + type.value);
52885
- }
52886
- return Debug.fail();
52887
- }
52888
52895
  function addDeclarationToLateBoundSymbol(symbol, member, symbolFlags) {
52889
52896
  Debug.assert(!!(getCheckFlags(symbol) & 4096 /* Late */), "Expected a late-bound symbol.");
52890
52897
  symbol.flags |= symbolFlags;
@@ -52934,6 +52941,7 @@ function createTypeChecker(host) {
52934
52941
  return links.resolvedSymbol;
52935
52942
  }
52936
52943
  function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) {
52944
+ var _a, _b, _c;
52937
52945
  const links = getSymbolLinks(symbol);
52938
52946
  if (!links[resolutionKind]) {
52939
52947
  const isStatic2 = resolutionKind === "resolvedExports" /* resolvedExports */;
@@ -52952,7 +52960,7 @@ function createTypeChecker(host) {
52952
52960
  }
52953
52961
  }
52954
52962
  }
52955
- const assignments = symbol.assignmentDeclarationMembers;
52963
+ const assignments = (((_a = symbol.valueDeclaration) == null ? void 0 : _a.kind) === 219 /* ArrowFunction */ || ((_b = symbol.valueDeclaration) == null ? void 0 : _b.kind) === 218 /* FunctionExpression */) && ((_c = getSymbolOfNode(symbol.valueDeclaration.parent)) == null ? void 0 : _c.assignmentDeclarationMembers) || symbol.assignmentDeclarationMembers;
52956
52964
  if (assignments) {
52957
52965
  const decls = arrayFrom(assignments.values());
52958
52966
  for (const member of decls) {
@@ -53530,20 +53538,17 @@ function createTypeChecker(host) {
53530
53538
  setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);
53531
53539
  return;
53532
53540
  }
53533
- let members = emptySymbols;
53541
+ let members = getExportsOfSymbol(symbol);
53534
53542
  let indexInfos;
53535
- if (symbol.exports) {
53536
- members = getExportsOfSymbol(symbol);
53537
- if (symbol === globalThisSymbol) {
53538
- const varsOnly = /* @__PURE__ */ new Map();
53539
- members.forEach((p) => {
53540
- var _a;
53541
- if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {
53542
- varsOnly.set(p.escapedName, p);
53543
- }
53544
- });
53545
- members = varsOnly;
53546
- }
53543
+ if (symbol === globalThisSymbol) {
53544
+ const varsOnly = /* @__PURE__ */ new Map();
53545
+ members.forEach((p) => {
53546
+ var _a;
53547
+ if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {
53548
+ varsOnly.set(p.escapedName, p);
53549
+ }
53550
+ });
53551
+ members = varsOnly;
53547
53552
  }
53548
53553
  let baseConstructorIndexInfo;
53549
53554
  setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray);
@@ -65636,12 +65641,15 @@ function createTypeChecker(host) {
65636
65641
  return narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue);
65637
65642
  }
65638
65643
  const target = getReferenceCandidate(expr.right);
65639
- const leftType = getTypeOfExpression(expr.left);
65640
- if (leftType.flags & 8576 /* StringOrNumberLiteralOrUnique */) {
65641
- if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) {
65644
+ if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target)) {
65645
+ const leftType = getTypeOfExpression(expr.left);
65646
+ if (isTypeUsableAsPropertyName(leftType) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) {
65642
65647
  return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);
65643
65648
  }
65644
- if (isMatchingReference(reference, target)) {
65649
+ }
65650
+ if (isMatchingReference(reference, target)) {
65651
+ const leftType = getTypeOfExpression(expr.left);
65652
+ if (isTypeUsableAsPropertyName(leftType)) {
65645
65653
  return narrowTypeByInKeyword(type, leftType, assumeTrue);
65646
65654
  }
65647
65655
  }
@@ -72052,7 +72060,7 @@ function createTypeChecker(host) {
72052
72060
  }
72053
72061
  return restParameter.escapedName;
72054
72062
  }
72055
- function getParameterIdentifierNameAtPosition(signature, pos) {
72063
+ function getParameterIdentifierInfoAtPosition(signature, pos) {
72056
72064
  var _a;
72057
72065
  if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocFunctionType */) {
72058
72066
  return void 0;
@@ -72060,10 +72068,16 @@ function createTypeChecker(host) {
72060
72068
  const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
72061
72069
  if (pos < paramCount) {
72062
72070
  const param = signature.parameters[pos];
72063
- return isParameterDeclarationWithIdentifierName(param) ? [param.escapedName, false] : void 0;
72071
+ const paramIdent = getParameterDeclarationIdentifier(param);
72072
+ return paramIdent ? {
72073
+ parameter: paramIdent,
72074
+ parameterName: param.escapedName,
72075
+ isRestParameter: false
72076
+ } : void 0;
72064
72077
  }
72065
72078
  const restParameter = signature.parameters[paramCount] || unknownSymbol;
72066
- if (!isParameterDeclarationWithIdentifierName(restParameter)) {
72079
+ const restIdent = getParameterDeclarationIdentifier(restParameter);
72080
+ if (!restIdent) {
72067
72081
  return void 0;
72068
72082
  }
72069
72083
  const restType = getTypeOfSymbol(restParameter);
@@ -72072,18 +72086,19 @@ function createTypeChecker(host) {
72072
72086
  const index = pos - paramCount;
72073
72087
  const associatedName = associatedNames == null ? void 0 : associatedNames[index];
72074
72088
  const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
72075
- return associatedName ? [
72076
- getTupleElementLabel(associatedName),
72077
- isRestTupleElement
72078
- ] : void 0;
72089
+ if (associatedName) {
72090
+ Debug.assert(isIdentifier(associatedName.name));
72091
+ return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };
72092
+ }
72093
+ return void 0;
72079
72094
  }
72080
72095
  if (pos === paramCount) {
72081
- return [restParameter.escapedName, true];
72096
+ return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true };
72082
72097
  }
72083
72098
  return void 0;
72084
72099
  }
72085
- function isParameterDeclarationWithIdentifierName(symbol) {
72086
- return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name);
72100
+ function getParameterDeclarationIdentifier(symbol) {
72101
+ return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name) && symbol.valueDeclaration.name;
72087
72102
  }
72088
72103
  function isValidDeclarationForTupleLabel(d) {
72089
72104
  return d.kind === 202 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name);