typescript 5.1.0-dev.20230315 → 5.1.0-dev.20230317

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
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.1";
26
- var version = `${versionMajorMinor}.0-dev.20230315`;
26
+ var version = `${versionMajorMinor}.0-dev.20230317`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -2645,28 +2645,6 @@ function tryGetNativePerformanceHooks() {
2645
2645
  var timestamp = nativePerformance ? () => nativePerformance.now() : Date.now ? Date.now : () => +/* @__PURE__ */ new Date();
2646
2646
 
2647
2647
  // src/compiler/perfLogger.ts
2648
- var nullLogger = {
2649
- logEvent: noop,
2650
- logErrEvent: noop,
2651
- logPerfEvent: noop,
2652
- logInfoEvent: noop,
2653
- logStartCommand: noop,
2654
- logStopCommand: noop,
2655
- logStartUpdateProgram: noop,
2656
- logStopUpdateProgram: noop,
2657
- logStartUpdateGraph: noop,
2658
- logStopUpdateGraph: noop,
2659
- logStartResolveModule: noop,
2660
- logStopResolveModule: noop,
2661
- logStartParseSourceFile: noop,
2662
- logStopParseSourceFile: noop,
2663
- logStartReadFile: noop,
2664
- logStopReadFile: noop,
2665
- logStartBindFile: noop,
2666
- logStopBindFile: noop,
2667
- logStartScheduledOperation: noop,
2668
- logStopScheduledOperation: noop
2669
- };
2670
2648
  var etwModule;
2671
2649
  var _a;
2672
2650
  try {
@@ -2675,7 +2653,7 @@ try {
2675
2653
  } catch (e) {
2676
2654
  etwModule = void 0;
2677
2655
  }
2678
- var perfLogger = (etwModule == null ? void 0 : etwModule.logEvent) ? etwModule : nullLogger;
2656
+ var perfLogger = (etwModule == null ? void 0 : etwModule.logEvent) ? etwModule : void 0;
2679
2657
 
2680
2658
  // src/compiler/_namespaces/ts.performance.ts
2681
2659
  var ts_performance_exports = {};
@@ -5168,13 +5146,15 @@ var sys = (() => {
5168
5146
  return buffer.toString("utf8");
5169
5147
  }
5170
5148
  function readFile(fileName, _encoding) {
5171
- perfLogger.logStartReadFile(fileName);
5149
+ var _a2, _b;
5150
+ (_a2 = perfLogger) == null ? void 0 : _a2.logStartReadFile(fileName);
5172
5151
  const file = readFileWorker(fileName, _encoding);
5173
- perfLogger.logStopReadFile();
5152
+ (_b = perfLogger) == null ? void 0 : _b.logStopReadFile();
5174
5153
  return file;
5175
5154
  }
5176
5155
  function writeFile2(fileName, data, writeByteOrderMark) {
5177
- perfLogger.logEvent("WriteFile: " + fileName);
5156
+ var _a2;
5157
+ (_a2 = perfLogger) == null ? void 0 : _a2.logEvent("WriteFile: " + fileName);
5178
5158
  if (writeByteOrderMark) {
5179
5159
  data = byteOrderMarkIndicator + data;
5180
5160
  }
@@ -5195,7 +5175,8 @@ var sys = (() => {
5195
5175
  }
5196
5176
  }
5197
5177
  function getAccessibleFileSystemEntries(path) {
5198
- perfLogger.logEvent("ReadDir: " + (path || "."));
5178
+ var _a2;
5179
+ (_a2 = perfLogger) == null ? void 0 : _a2.logEvent("ReadDir: " + (path || "."));
5199
5180
  try {
5200
5181
  const entries = _fs.readdirSync(path || ".", { withFileTypes: true });
5201
5182
  const files = [];
@@ -25938,7 +25919,7 @@ function setExternalModuleIndicator(sourceFile) {
25938
25919
  sourceFile.externalModuleIndicator = isFileProbablyExternalModule(sourceFile);
25939
25920
  }
25940
25921
  function createSourceFile(fileName, sourceText, languageVersionOrOptions, setParentNodes = false, scriptKind) {
25941
- var _a2, _b;
25922
+ var _a2, _b, _c, _d;
25942
25923
  (_a2 = tracing) == null ? void 0 : _a2.push(
25943
25924
  tracing.Phase.Parse,
25944
25925
  "createSourceFile",
@@ -25948,7 +25929,7 @@ function createSourceFile(fileName, sourceText, languageVersionOrOptions, setPar
25948
25929
  );
25949
25930
  mark("beforeParse");
25950
25931
  let result;
25951
- perfLogger.logStartParseSourceFile(fileName);
25932
+ (_b = perfLogger) == null ? void 0 : _b.logStartParseSourceFile(fileName);
25952
25933
  const {
25953
25934
  languageVersion,
25954
25935
  setExternalModuleIndicator: overrideSetExternalModuleIndicator,
@@ -25981,10 +25962,10 @@ function createSourceFile(fileName, sourceText, languageVersionOrOptions, setPar
25981
25962
  setIndicator
25982
25963
  );
25983
25964
  }
25984
- perfLogger.logStopParseSourceFile();
25965
+ (_c = perfLogger) == null ? void 0 : _c.logStopParseSourceFile();
25985
25966
  mark("afterParse");
25986
25967
  measure("Parse", "beforeParse", "afterParse");
25987
- (_b = tracing) == null ? void 0 : _b.pop();
25968
+ (_d = tracing) == null ? void 0 : _d.pop();
25988
25969
  return result;
25989
25970
  }
25990
25971
  function parseIsolatedEntityName(text, languageVersion) {
@@ -37167,6 +37148,7 @@ function createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanoni
37167
37148
  );
37168
37149
  }
37169
37150
  function resolveModuleName(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {
37151
+ var _a2, _b, _c;
37170
37152
  const traceEnabled = isTraceEnabled(compilerOptions, host);
37171
37153
  if (redirectedReference) {
37172
37154
  compilerOptions = redirectedReference.commandLine.options;
@@ -37208,10 +37190,7 @@ function resolveModuleName(moduleName, containingFile, compilerOptions, host, ca
37208
37190
  trace(host, Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0, ModuleResolutionKind[moduleResolution]);
37209
37191
  }
37210
37192
  }
37211
- perfLogger.logStartResolveModule(
37212
- moduleName
37213
- /* , containingFile, ModuleResolutionKind[moduleResolution]*/
37214
- );
37193
+ (_a2 = perfLogger) == null ? void 0 : _a2.logStartResolveModule(moduleName);
37215
37194
  switch (moduleResolution) {
37216
37195
  case 3 /* Node16 */:
37217
37196
  result = node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
@@ -37232,8 +37211,8 @@ function resolveModuleName(moduleName, containingFile, compilerOptions, host, ca
37232
37211
  return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);
37233
37212
  }
37234
37213
  if (result && result.resolvedModule)
37235
- perfLogger.logInfoEvent(`Module "${moduleName}" resolved to "${result.resolvedModule.resolvedFileName}"`);
37236
- perfLogger.logStopResolveModule(result && result.resolvedModule ? "" + result.resolvedModule.resolvedFileName : "null");
37214
+ (_b = perfLogger) == null ? void 0 : _b.logInfoEvent(`Module "${moduleName}" resolved to "${result.resolvedModule.resolvedFileName}"`);
37215
+ (_c = perfLogger) == null ? void 0 : _c.logStopResolveModule(result && result.resolvedModule ? "" + result.resolvedModule.resolvedFileName : "null");
37237
37216
  cache == null ? void 0 : cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(moduleName, resolutionMode, result);
37238
37217
  if (!isExternalModuleNameRelative(moduleName)) {
37239
37218
  cache == null ? void 0 : cache.getOrCreateCacheForNonRelativeName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result);
@@ -38884,10 +38863,11 @@ function initFlowNode(node) {
38884
38863
  }
38885
38864
  var binder = /* @__PURE__ */ createBinder();
38886
38865
  function bindSourceFile(file, options) {
38866
+ var _a2, _b;
38887
38867
  mark("beforeBind");
38888
- perfLogger.logStartBindFile("" + file.fileName);
38868
+ (_a2 = perfLogger) == null ? void 0 : _a2.logStartBindFile("" + file.fileName);
38889
38869
  binder(file, options);
38890
- perfLogger.logStopBindFile();
38870
+ (_b = perfLogger) == null ? void 0 : _b.logStopBindFile();
38891
38871
  mark("afterBind");
38892
38872
  measure("Bind", "beforeBind", "afterBind");
38893
38873
  }
@@ -45969,6 +45949,10 @@ function createTypeChecker(host) {
45969
45949
  return;
45970
45950
  merged.exports.set(name, merged.exports.has(name) ? mergeSymbol(merged.exports.get(name), s) : s);
45971
45951
  });
45952
+ if (merged === exported) {
45953
+ getSymbolLinks(merged).resolvedExports = void 0;
45954
+ getSymbolLinks(merged).resolvedMembers = void 0;
45955
+ }
45972
45956
  getSymbolLinks(merged).cjsExportMerged = merged;
45973
45957
  return links.cjsExportMerged = merged;
45974
45958
  }
@@ -46002,7 +45986,7 @@ function createTypeChecker(host) {
46002
45986
  /*skipObjectFunctionPropertyAugment*/
46003
45987
  true
46004
45988
  ) || isEsmCjsRef) {
46005
- const moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
45989
+ const moduleType = type.flags & 3670016 /* StructuredType */ ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent);
46006
45990
  return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
46007
45991
  }
46008
45992
  }
@@ -49422,7 +49406,8 @@ function createTypeChecker(host) {
49422
49406
  ), modifierFlags);
49423
49407
  }
49424
49408
  function getNamespaceMembersForSerialization(symbol) {
49425
- return !symbol.exports ? [] : filter(arrayFrom(symbol.exports.values()), isNamespaceMember);
49409
+ const exports = getExportsOfSymbol(symbol);
49410
+ return !exports ? [] : filter(arrayFrom(exports.values()), (m) => isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */));
49426
49411
  }
49427
49412
  function isTypeOnlyNamespace(symbol) {
49428
49413
  return every(getNamespaceMembersForSerialization(symbol), (m) => !(getAllSymbolFlags(resolveSymbol(m)) & 111551 /* Value */));
@@ -53225,9 +53210,10 @@ function createTypeChecker(host) {
53225
53210
  setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);
53226
53211
  const typeParameter = getTypeParameterFromMappedType(type);
53227
53212
  const constraintType = getConstraintTypeFromMappedType(type);
53228
- const nameType = getNameTypeFromMappedType(type.target || type);
53229
- const isFilteringMappedType = nameType && isTypeAssignableTo(nameType, typeParameter);
53230
- const templateType = getTemplateTypeFromMappedType(type.target || type);
53213
+ const mappedType = type.target || type;
53214
+ const nameType = getNameTypeFromMappedType(mappedType);
53215
+ const shouldLinkPropDeclarations = !nameType || isFilteringMappedType(mappedType);
53216
+ const templateType = getTemplateTypeFromMappedType(mappedType);
53231
53217
  const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));
53232
53218
  const templateModifiers = getMappedTypeModifiers(type);
53233
53219
  const include = keyofStringsOnly ? 128 /* StringLiteral */ : 8576 /* StringOrNumberLiteralOrUnique */;
@@ -53264,7 +53250,7 @@ function createTypeChecker(host) {
53264
53250
  prop.links.keyType = keyType;
53265
53251
  if (modifiersProp) {
53266
53252
  prop.links.syntheticOrigin = modifiersProp;
53267
- prop.declarations = !nameType || isFilteringMappedType ? modifiersProp.declarations : void 0;
53253
+ prop.declarations = shouldLinkPropDeclarations ? modifiersProp.declarations : void 0;
53268
53254
  }
53269
53255
  members.set(propName, prop);
53270
53256
  }
@@ -53370,6 +53356,10 @@ function createTypeChecker(host) {
53370
53356
  }
53371
53357
  return false;
53372
53358
  }
53359
+ function isFilteringMappedType(type) {
53360
+ const nameType = getNameTypeFromMappedType(type);
53361
+ return !!nameType && isTypeAssignableTo(nameType, getTypeParameterFromMappedType(type));
53362
+ }
53373
53363
  function resolveStructuredTypeMembers(type) {
53374
53364
  if (!type.members) {
53375
53365
  if (type.flags & 524288 /* Object */) {
@@ -53729,7 +53719,7 @@ function createTypeChecker(host) {
53729
53719
  const typeVariable = getHomomorphicTypeVariable(type);
53730
53720
  if (typeVariable && !type.declaration.nameType) {
53731
53721
  const constraint = getConstraintOfTypeParameter(typeVariable);
53732
- if (constraint && isArrayOrTupleType(constraint)) {
53722
+ if (constraint && isArrayType(constraint)) {
53733
53723
  return instantiateType(type, prependTypeMapping(typeVariable, constraint, type.mapper));
53734
53724
  }
53735
53725
  }
@@ -56909,8 +56899,7 @@ function createTypeChecker(host) {
56909
56899
  }
56910
56900
  }
56911
56901
  if (isGenericMappedType(objectType)) {
56912
- const nameType = getNameTypeFromMappedType(objectType);
56913
- if (!nameType || isTypeAssignableTo(nameType, getTypeParameterFromMappedType(objectType))) {
56902
+ if (!getNameTypeFromMappedType(objectType) || isFilteringMappedType(objectType)) {
56914
56903
  return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), (t) => getSimplifiedType(t, writing));
56915
56904
  }
56916
56905
  }
@@ -58646,8 +58635,20 @@ function createTypeChecker(host) {
58646
58635
  return result;
58647
58636
  }
58648
58637
  const moreThanOneRealChildren = length(validChildren) > 1;
58649
- const arrayLikeTargetParts = filterType(childrenTargetType, isAssignableToAvailableAnyIterable);
58650
- const nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isAssignableToAvailableAnyIterable(t));
58638
+ let arrayLikeTargetParts;
58639
+ let nonArrayLikeTargetParts;
58640
+ const iterableType = getGlobalIterableType(
58641
+ /*reportErrors*/
58642
+ false
58643
+ );
58644
+ if (iterableType !== emptyGenericType) {
58645
+ const anyIterable = createIterableType(anyType);
58646
+ arrayLikeTargetParts = filterType(childrenTargetType, (t) => isTypeAssignableTo(t, anyIterable));
58647
+ nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isTypeAssignableTo(t, anyIterable));
58648
+ } else {
58649
+ arrayLikeTargetParts = filterType(childrenTargetType, isArrayOrTupleLikeType);
58650
+ nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isArrayOrTupleLikeType(t));
58651
+ }
58651
58652
  if (moreThanOneRealChildren) {
58652
58653
  if (arrayLikeTargetParts !== neverType) {
58653
58654
  const realSource = createTupleType(checkJsxChildren(containingElement, 0 /* Normal */));
@@ -61927,13 +61928,6 @@ function createTypeChecker(host) {
61927
61928
  function isArrayOrTupleLikeType(type) {
61928
61929
  return isArrayLikeType(type) || isTupleLikeType(type);
61929
61930
  }
61930
- function isAssignableToAvailableAnyIterable(type) {
61931
- const anyIterable = getGlobalIterableType(
61932
- /*reportErrors*/
61933
- false
61934
- ) !== emptyGenericType && createIterableType(anyType);
61935
- return anyIterable ? isTypeAssignableTo(type, anyIterable) : isArrayOrTupleLikeType(type);
61936
- }
61937
61931
  function getTupleElementType(type, index) {
61938
61932
  const propType = getTypeOfPropertyOfType(type, "" + index);
61939
61933
  if (propType) {
@@ -66531,7 +66525,7 @@ function createTypeChecker(host) {
66531
66525
  return void 0;
66532
66526
  }
66533
66527
  }
66534
- return isInJSFile(decl2) ? void 0 : getTypeOfExpression(binaryExpression.left);
66528
+ return isInJSFile(decl2) || decl2 === binaryExpression.left ? void 0 : getTypeOfExpression(binaryExpression.left);
66535
66529
  }
66536
66530
  case 1 /* ExportsProperty */:
66537
66531
  case 6 /* Prototype */:
@@ -66687,7 +66681,7 @@ function createTypeChecker(host) {
66687
66681
  return void 0;
66688
66682
  }
66689
66683
  function getContextualTypeForElementExpression(arrayContextualType, index) {
66690
- return arrayContextualType && (index >= 0 && getTypeOfPropertyOfContextualType(filterType(arrayContextualType, (t) => !!getIndexTypeOfType(t, numberType) || isAssignableToAvailableAnyIterable(t)), "" + index) || mapType(
66684
+ return arrayContextualType && (index >= 0 && getTypeOfPropertyOfContextualType(arrayContextualType, "" + index) || mapType(
66691
66685
  arrayContextualType,
66692
66686
  (t) => isTupleType(t) ? getElementTypeOfSliceOfTupleType(
66693
66687
  t,
@@ -67429,7 +67423,7 @@ function createTypeChecker(host) {
67429
67423
  const inConstContext = isConstContext(node);
67430
67424
  const checkFlags = inConstContext ? 8 /* Readonly */ : 0;
67431
67425
  const isInJavascript = isInJSFile(node) && !isInJsonFile(node);
67432
- const enumTag = getJSDocEnumTag(node);
67426
+ const enumTag = isInJavascript ? getJSDocEnumTag(node) : void 0;
67433
67427
  const isJSObjectLiteral = !contextualType && isInJavascript && !enumTag;
67434
67428
  let objectFlags = freshObjectLiteralFlag;
67435
67429
  let patternWithComputedProperties = false;
@@ -67655,7 +67649,7 @@ function createTypeChecker(host) {
67655
67649
  }
67656
67650
  function createJsxAttributesTypeFromAttributesProperty(openingLikeElement, checkMode) {
67657
67651
  const attributes = openingLikeElement.attributes;
67658
- const attributesType = getContextualType(attributes, 0 /* None */);
67652
+ const contextualType = getContextualType(attributes, 0 /* None */);
67659
67653
  const allAttributesTable = strictNullChecks ? createSymbolTable() : void 0;
67660
67654
  let attributesTable = createSymbolTable();
67661
67655
  let spread = emptyJsxObjectType;
@@ -67682,12 +67676,18 @@ function createTypeChecker(host) {
67682
67676
  if (attributeDecl.name.escapedText === jsxChildrenPropertyName) {
67683
67677
  explicitlySpecifyChildrenAttribute = true;
67684
67678
  }
67685
- if (attributesType) {
67686
- const prop = getPropertyOfType(attributesType, member.escapedName);
67679
+ if (contextualType) {
67680
+ const prop = getPropertyOfType(contextualType, member.escapedName);
67687
67681
  if (prop && prop.declarations && isDeprecatedSymbol(prop)) {
67688
67682
  addDeprecatedSuggestion(attributeDecl.name, prop.declarations, attributeDecl.name.escapedText);
67689
67683
  }
67690
67684
  }
67685
+ if (contextualType && checkMode && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(attributeDecl)) {
67686
+ const inferenceContext = getInferenceContext(attributes);
67687
+ Debug.assert(inferenceContext);
67688
+ const inferenceNode = attributeDecl.initializer.expression;
67689
+ addIntraExpressionInferenceSite(inferenceContext, inferenceNode, exprType);
67690
+ }
67691
67691
  } else {
67692
67692
  Debug.assert(attributeDecl.kind === 291 /* JsxSpreadAttribute */);
67693
67693
  if (attributesTable.size > 0) {
@@ -67742,12 +67742,12 @@ function createTypeChecker(host) {
67742
67742
  if (explicitlySpecifyChildrenAttribute) {
67743
67743
  error(attributes, Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, unescapeLeadingUnderscores(jsxChildrenPropertyName));
67744
67744
  }
67745
- const contextualType = getApparentTypeOfContextualType(
67745
+ const contextualType2 = getApparentTypeOfContextualType(
67746
67746
  openingLikeElement.attributes,
67747
67747
  /*contextFlags*/
67748
67748
  void 0
67749
67749
  );
67750
- const childrenContextualType = contextualType && getTypeOfPropertyOfContextualType(contextualType, jsxChildrenPropertyName);
67750
+ const childrenContextualType = contextualType2 && getTypeOfPropertyOfContextualType(contextualType2, jsxChildrenPropertyName);
67751
67751
  const childrenPropSymbol = createSymbol(4 /* Property */, jsxChildrenPropertyName);
67752
67752
  childrenPropSymbol.links.type = childrenTypes.length === 1 ? childrenTypes[0] : childrenContextualType && someType(childrenContextualType, isTupleLikeType) ? createTupleType(childrenTypes) : createArrayType(getUnionType(childrenTypes));
67753
67753
  childrenPropSymbol.valueDeclaration = factory.createPropertySignature(
@@ -72180,6 +72180,11 @@ function createTypeChecker(host) {
72180
72180
  } else {
72181
72181
  assignNonContextualParameterTypes(signature);
72182
72182
  }
72183
+ } else if (contextualSignature && !node.typeParameters && contextualSignature.parameters.length > node.parameters.length) {
72184
+ const inferenceContext = getInferenceContext(node);
72185
+ if (checkMode && checkMode & 2 /* Inferential */) {
72186
+ inferFromAnnotatedParameters(signature, contextualSignature, inferenceContext);
72187
+ }
72183
72188
  }
72184
72189
  if (contextualSignature && !getReturnTypeFromAnnotation(node) && !signature.resolvedReturnType) {
72185
72190
  const returnType = getReturnTypeFromBody(node, checkMode);
@@ -91139,8 +91144,11 @@ function transformESDecorators(context) {
91139
91144
  false,
91140
91145
  visitor
91141
91146
  );
91147
+ const superStatementIndex = findSuperStatementIndex(node.body.statements, nonPrologueStart);
91148
+ const indexOfFirstStatementAfterSuper = superStatementIndex >= 0 ? superStatementIndex + 1 : void 0;
91149
+ addRange(statements, visitNodes2(node.body.statements, visitor, isStatement, nonPrologueStart, indexOfFirstStatementAfterSuper ? indexOfFirstStatementAfterSuper - nonPrologueStart : void 0));
91142
91150
  addRange(statements, initializerStatements);
91143
- addRange(statements, visitNodes2(node.body.statements, visitor, isStatement, nonPrologueStart));
91151
+ addRange(statements, visitNodes2(node.body.statements, visitor, isStatement, indexOfFirstStatementAfterSuper));
91144
91152
  body = factory2.createBlock(
91145
91153
  statements,
91146
91154
  /*multiLine*/
@@ -103932,7 +103940,7 @@ function transformNodeModule(context) {
103932
103940
 
103933
103941
  // src/compiler/transformers/declarations/diagnostics.ts
103934
103942
  function canProduceDiagnostics(node) {
103935
- return isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isBindingElement(node) || isSetAccessor(node) || isGetAccessor(node) || isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isParameter(node) || isTypeParameterDeclaration(node) || isExpressionWithTypeArguments(node) || isImportEqualsDeclaration(node) || isTypeAliasDeclaration(node) || isConstructorDeclaration(node) || isIndexSignatureDeclaration(node) || isPropertyAccessExpression(node) || isJSDocTypeAlias(node);
103943
+ return isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isBindingElement(node) || isSetAccessor(node) || isGetAccessor(node) || isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isParameter(node) || isTypeParameterDeclaration(node) || isExpressionWithTypeArguments(node) || isImportEqualsDeclaration(node) || isTypeAliasDeclaration(node) || isConstructorDeclaration(node) || isIndexSignatureDeclaration(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isJSDocTypeAlias(node);
103936
103944
  }
103937
103945
  function createGetSymbolAccessibilityDiagnosticForNodeName(node) {
103938
103946
  if (isSetAccessor(node) || isGetAccessor(node)) {
@@ -103978,7 +103986,7 @@ function createGetSymbolAccessibilityDiagnosticForNodeName(node) {
103978
103986
  }
103979
103987
  }
103980
103988
  function createGetSymbolAccessibilityDiagnosticForNode(node) {
103981
- if (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isPropertyAccessExpression(node) || isBindingElement(node) || isConstructorDeclaration(node)) {
103989
+ if (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isBindingElement(node) || isConstructorDeclaration(node)) {
103982
103990
  return getVariableDeclarationTypeVisibilityError;
103983
103991
  } else if (isSetAccessor(node) || isGetAccessor(node)) {
103984
103992
  return getAccessorDeclarationTypeVisibilityError;
@@ -104003,7 +104011,7 @@ function createGetSymbolAccessibilityDiagnosticForNode(node) {
104003
104011
  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {
104004
104012
  if (node.kind === 258 /* VariableDeclaration */ || node.kind === 206 /* BindingElement */) {
104005
104013
  return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;
104006
- } else if (node.kind === 170 /* PropertyDeclaration */ || node.kind === 209 /* PropertyAccessExpression */ || node.kind === 169 /* PropertySignature */ || node.kind === 167 /* Parameter */ && hasSyntacticModifier(node.parent, 8 /* Private */)) {
104014
+ } else if (node.kind === 170 /* PropertyDeclaration */ || node.kind === 209 /* PropertyAccessExpression */ || node.kind === 210 /* ElementAccessExpression */ || node.kind === 224 /* BinaryExpression */ || node.kind === 169 /* PropertySignature */ || node.kind === 167 /* Parameter */ && hasSyntacticModifier(node.parent, 8 /* Private */)) {
104007
104015
  if (isStatic(node)) {
104008
104016
  return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;
104009
104017
  } else if (node.parent.kind === 261 /* ClassDeclaration */ || node.kind === 167 /* Parameter */) {
@@ -105456,13 +105464,16 @@ function transformDeclarations(context) {
105456
105464
  fakespace.symbol = props[0].parent;
105457
105465
  const exportMappings = [];
105458
105466
  let declarations = mapDefined(props, (p) => {
105459
- if (!p.valueDeclaration || !isPropertyAccessExpression(p.valueDeclaration)) {
105467
+ if (!p.valueDeclaration || !(isPropertyAccessExpression(p.valueDeclaration) || isElementAccessExpression(p.valueDeclaration) || isBinaryExpression(p.valueDeclaration))) {
105468
+ return void 0;
105469
+ }
105470
+ const nameStr = unescapeLeadingUnderscores(p.escapedName);
105471
+ if (!isIdentifierText(nameStr, 99 /* ESNext */)) {
105460
105472
  return void 0;
105461
105473
  }
105462
105474
  getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration);
105463
105475
  const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags, symbolTracker);
105464
105476
  getSymbolAccessibilityDiagnostic = oldDiag;
105465
- const nameStr = unescapeLeadingUnderscores(p.escapedName);
105466
105477
  const isNonContextualKeywordName = isStringANonContextualKeyword(nameStr);
105467
105478
  const name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr);
105468
105479
  if (isNonContextualKeywordName) {
@@ -119730,21 +119741,22 @@ function createWatchProgram(host) {
119730
119741
  updateProgram();
119731
119742
  }
119732
119743
  function updateProgram() {
119744
+ var _a2, _b, _c, _d;
119733
119745
  switch (reloadLevel) {
119734
119746
  case 1 /* Partial */:
119735
- perfLogger.logStartUpdateProgram("PartialConfigReload");
119747
+ (_a2 = perfLogger) == null ? void 0 : _a2.logStartUpdateProgram("PartialConfigReload");
119736
119748
  reloadFileNamesFromConfigFile();
119737
119749
  break;
119738
119750
  case 2 /* Full */:
119739
- perfLogger.logStartUpdateProgram("FullConfigReload");
119751
+ (_b = perfLogger) == null ? void 0 : _b.logStartUpdateProgram("FullConfigReload");
119740
119752
  reloadConfigFile();
119741
119753
  break;
119742
119754
  default:
119743
- perfLogger.logStartUpdateProgram("SynchronizeProgram");
119755
+ (_c = perfLogger) == null ? void 0 : _c.logStartUpdateProgram("SynchronizeProgram");
119744
119756
  synchronizeProgram();
119745
119757
  break;
119746
119758
  }
119747
- perfLogger.logStopUpdateProgram("Done");
119759
+ (_d = perfLogger) == null ? void 0 : _d.logStopUpdateProgram("Done");
119748
119760
  return getCurrentBuilderProgram();
119749
119761
  }
119750
119762
  function reloadFileNamesFromConfigFile() {