typescript 5.2.0-dev.20230720 → 5.2.0-dev.20230722

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.20230720`;
21
+ var version = `${versionMajorMinor}.0-dev.20230722`;
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 */);
@@ -33505,7 +33524,7 @@ function getNamedArgRegEx(name) {
33505
33524
  return result;
33506
33525
  }
33507
33526
  var tripleSlashXMLCommentStartRegEx = /^\/\/\/\s*<(\S+)\s.*?\/>/im;
33508
- var singleLinePragmaRegEx = /^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;
33527
+ var singleLinePragmaRegEx = /^\/\/\/?\s*@([^\s:]+)(.*)\s*$/im;
33509
33528
  function extractPragmas(pragmas, range, text) {
33510
33529
  const tripleSlash = range.kind === 2 /* SingleLineCommentTrivia */ && tripleSlashXMLCommentStartRegEx.exec(text);
33511
33530
  if (tripleSlash) {
@@ -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,
@@ -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;
@@ -53531,20 +53538,17 @@ function createTypeChecker(host) {
53531
53538
  setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);
53532
53539
  return;
53533
53540
  }
53534
- let members = emptySymbols;
53541
+ let members = getExportsOfSymbol(symbol);
53535
53542
  let indexInfos;
53536
- if (symbol.exports) {
53537
- members = getExportsOfSymbol(symbol);
53538
- if (symbol === globalThisSymbol) {
53539
- const varsOnly = /* @__PURE__ */ new Map();
53540
- members.forEach((p) => {
53541
- var _a;
53542
- if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {
53543
- varsOnly.set(p.escapedName, p);
53544
- }
53545
- });
53546
- members = varsOnly;
53547
- }
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;
53548
53552
  }
53549
53553
  let baseConstructorIndexInfo;
53550
53554
  setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray);
@@ -72056,7 +72060,7 @@ function createTypeChecker(host) {
72056
72060
  }
72057
72061
  return restParameter.escapedName;
72058
72062
  }
72059
- function getParameterIdentifierNameAtPosition(signature, pos) {
72063
+ function getParameterIdentifierInfoAtPosition(signature, pos) {
72060
72064
  var _a;
72061
72065
  if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocFunctionType */) {
72062
72066
  return void 0;
@@ -72064,10 +72068,16 @@ function createTypeChecker(host) {
72064
72068
  const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
72065
72069
  if (pos < paramCount) {
72066
72070
  const param = signature.parameters[pos];
72067
- 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;
72068
72077
  }
72069
72078
  const restParameter = signature.parameters[paramCount] || unknownSymbol;
72070
- if (!isParameterDeclarationWithIdentifierName(restParameter)) {
72079
+ const restIdent = getParameterDeclarationIdentifier(restParameter);
72080
+ if (!restIdent) {
72071
72081
  return void 0;
72072
72082
  }
72073
72083
  const restType = getTypeOfSymbol(restParameter);
@@ -72076,18 +72086,19 @@ function createTypeChecker(host) {
72076
72086
  const index = pos - paramCount;
72077
72087
  const associatedName = associatedNames == null ? void 0 : associatedNames[index];
72078
72088
  const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
72079
- return associatedName ? [
72080
- getTupleElementLabel(associatedName),
72081
- isRestTupleElement
72082
- ] : 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;
72083
72094
  }
72084
72095
  if (pos === paramCount) {
72085
- return [restParameter.escapedName, true];
72096
+ return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true };
72086
72097
  }
72087
72098
  return void 0;
72088
72099
  }
72089
- function isParameterDeclarationWithIdentifierName(symbol) {
72090
- 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;
72091
72102
  }
72092
72103
  function isValidDeclarationForTupleLabel(d) {
72093
72104
  return d.kind === 202 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name);