@typescript-deploys/pr-build 4.9.0-pr-50306-2 → 4.9.0-pr-50366-2

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/tsserver.js CHANGED
@@ -109,7 +109,7 @@ var ts;
109
109
  // The following is baselined as a literal template type without intervention
110
110
  /** The version of the TypeScript compiler release */
111
111
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
112
- ts.version = ts.versionMajorMinor + ".0-insiders.20220815";
112
+ ts.version = ts.versionMajorMinor + ".0-insiders.20220819";
113
113
  /* @internal */
114
114
  var Comparison;
115
115
  (function (Comparison) {
@@ -1163,6 +1163,13 @@ var ts;
1163
1163
  : undefined;
1164
1164
  }
1165
1165
  ts.singleOrUndefined = singleOrUndefined;
1166
+ /**
1167
+ * Returns the only element of an array if it contains only one element; throws otherwise.
1168
+ */
1169
+ function single(array) {
1170
+ return ts.Debug.checkDefined(singleOrUndefined(array));
1171
+ }
1172
+ ts.single = single;
1166
1173
  function singleOrMany(array) {
1167
1174
  return array && array.length === 1
1168
1175
  ? array[0]
@@ -6134,7 +6141,6 @@ var ts;
6134
6141
  var pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels);
6135
6142
  /* @internal */
6136
6143
  ts.unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels);
6137
- /* @internal */
6138
6144
  function setCustomPollingValues(system) {
6139
6145
  if (!system.getEnvironmentVariable) {
6140
6146
  return;
@@ -6177,7 +6183,6 @@ var ts;
6177
6183
  createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
6178
6184
  }
6179
6185
  }
6180
- ts.setCustomPollingValues = setCustomPollingValues;
6181
6186
  function pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {
6182
6187
  var definedValueCopyToIndex = pollIndex;
6183
6188
  // Max visit would be all elements of the queue
@@ -6223,7 +6228,6 @@ var ts;
6223
6228
  }
6224
6229
  }
6225
6230
  }
6226
- /* @internal */
6227
6231
  function createDynamicPriorityPollingWatchFile(host) {
6228
6232
  var watchedFiles = [];
6229
6233
  var changedFilesInLastPoll = [];
@@ -6332,7 +6336,6 @@ var ts;
6332
6336
  pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === PollingInterval.Low ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingIntervalQueue(pollingInterval));
6333
6337
  }
6334
6338
  }
6335
- ts.createDynamicPriorityPollingWatchFile = createDynamicPriorityPollingWatchFile;
6336
6339
  function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames) {
6337
6340
  // One file can have multiple watchers
6338
6341
  var fileWatcherCallbacks = ts.createMultiMap();
@@ -6411,42 +6414,36 @@ var ts;
6411
6414
  pollScheduled = host.setTimeout(pollQueue, PollingInterval.High);
6412
6415
  }
6413
6416
  }
6414
- /* @internal */
6415
- function createSingleFileWatcherPerName(watchFile, useCaseSensitiveFileNames) {
6416
- var cache = new ts.Map();
6417
- var callbacksCache = ts.createMultiMap();
6417
+ function createSingleWatcherPerName(cache, useCaseSensitiveFileNames, name, callback, createWatcher) {
6418
6418
  var toCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
6419
- return function (fileName, callback, pollingInterval, options) {
6420
- var path = toCanonicalFileName(fileName);
6421
- var existing = cache.get(path);
6422
- if (existing) {
6423
- existing.refCount++;
6424
- }
6425
- else {
6426
- cache.set(path, {
6427
- watcher: watchFile(fileName, function (fileName, eventKind, modifiedTime) { return ts.forEach(callbacksCache.get(path), function (cb) { return cb(fileName, eventKind, modifiedTime); }); }, pollingInterval, options),
6428
- refCount: 1
6429
- });
6419
+ var path = toCanonicalFileName(name);
6420
+ var existing = cache.get(path);
6421
+ if (existing) {
6422
+ existing.callbacks.push(callback);
6423
+ }
6424
+ else {
6425
+ cache.set(path, {
6426
+ watcher: createWatcher((
6427
+ // Cant infer types correctly so lets satisfy checker
6428
+ function (param1, param2, param3) { var _a; return (_a = cache.get(path)) === null || _a === void 0 ? void 0 : _a.callbacks.slice().forEach(function (cb) { return cb(param1, param2, param3); }); })),
6429
+ callbacks: [callback]
6430
+ });
6431
+ }
6432
+ return {
6433
+ close: function () {
6434
+ var watcher = cache.get(path);
6435
+ if (!watcher)
6436
+ return;
6437
+ if (!ts.orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length)
6438
+ return;
6439
+ cache.delete(path);
6440
+ ts.closeFileWatcherOf(watcher);
6430
6441
  }
6431
- callbacksCache.add(path, callback);
6432
- return {
6433
- close: function () {
6434
- var watcher = ts.Debug.checkDefined(cache.get(path));
6435
- callbacksCache.remove(path, callback);
6436
- watcher.refCount--;
6437
- if (watcher.refCount)
6438
- return;
6439
- cache.delete(path);
6440
- ts.closeFileWatcherOf(watcher);
6441
- }
6442
- };
6443
6442
  };
6444
6443
  }
6445
- ts.createSingleFileWatcherPerName = createSingleFileWatcherPerName;
6446
6444
  /**
6447
6445
  * Returns true if file status changed
6448
6446
  */
6449
- /*@internal*/
6450
6447
  function onWatchedFileStat(watchedFile, modifiedTime) {
6451
6448
  var oldTime = watchedFile.mtime.getTime();
6452
6449
  var newTime = modifiedTime.getTime();
@@ -6458,7 +6455,6 @@ var ts;
6458
6455
  }
6459
6456
  return false;
6460
6457
  }
6461
- ts.onWatchedFileStat = onWatchedFileStat;
6462
6458
  /*@internal*/
6463
6459
  function getFileWatcherEventKind(oldTime, newTime) {
6464
6460
  return oldTime === 0
@@ -6486,7 +6482,6 @@ var ts;
6486
6482
  * that means if this is recursive watcher, watch the children directories as well
6487
6483
  * (eg on OS that dont support recursive watch using fs.watch use fs.watchFile)
6488
6484
  */
6489
- /*@internal*/
6490
6485
  function createDirectoryWatcherSupportingRecursive(_a) {
6491
6486
  var watchDirectory = _a.watchDirectory, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, fileSystemEntryExists = _a.fileSystemEntryExists, realpath = _a.realpath, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout;
6492
6487
  var cache = new ts.Map();
@@ -6695,18 +6690,15 @@ var ts;
6695
6690
  return ts.stringContains(toCanonicalFilePath(path), searchPath);
6696
6691
  }
6697
6692
  }
6698
- ts.createDirectoryWatcherSupportingRecursive = createDirectoryWatcherSupportingRecursive;
6699
6693
  /*@internal*/
6700
6694
  var FileSystemEntryKind;
6701
6695
  (function (FileSystemEntryKind) {
6702
6696
  FileSystemEntryKind[FileSystemEntryKind["File"] = 0] = "File";
6703
6697
  FileSystemEntryKind[FileSystemEntryKind["Directory"] = 1] = "Directory";
6704
6698
  })(FileSystemEntryKind = ts.FileSystemEntryKind || (ts.FileSystemEntryKind = {}));
6705
- /*@internal*/
6706
6699
  function createFileWatcherCallback(callback) {
6707
6700
  return function (_fileName, eventKind, modifiedTime) { return callback(eventKind === FileWatcherEventKind.Changed ? "change" : "rename", "", modifiedTime); };
6708
6701
  }
6709
- ts.createFileWatcherCallback = createFileWatcherCallback;
6710
6702
  function createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime) {
6711
6703
  return function (eventName, _relativeFileName, modifiedTime) {
6712
6704
  if (eventName === "rename") {
@@ -6740,7 +6732,10 @@ var ts;
6740
6732
  }
6741
6733
  /*@internal*/
6742
6734
  function createSystemWatchFunctions(_a) {
6743
- var pollingWatchFile = _a.pollingWatchFile, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6735
+ var pollingWatchFileWorker = _a.pollingWatchFileWorker, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6736
+ var pollingWatches = new ts.Map();
6737
+ var fsWatches = new ts.Map();
6738
+ var fsWatchesRecursive = new ts.Map();
6744
6739
  var dynamicPollingWatchFile;
6745
6740
  var fixedChunkSizePollingWatchFile;
6746
6741
  var nonPollingWatchFile;
@@ -6804,7 +6799,7 @@ var ts;
6804
6799
  // Use notifications from FS to watch with falling back to fs.watchFile
6805
6800
  generateWatchFileOptions(ts.WatchFileKind.UseFsEventsOnParentDirectory, ts.PollingWatchKind.PriorityInterval, options) :
6806
6801
  // Default to do not use fixed polling interval
6807
- { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.FixedPollingInterval };
6802
+ { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.UseFsEvents };
6808
6803
  }
6809
6804
  }
6810
6805
  function generateWatchFileOptions(watchFile, fallbackPolling, options) {
@@ -6875,7 +6870,13 @@ var ts;
6875
6870
  };
6876
6871
  }
6877
6872
  }
6873
+ function pollingWatchFile(fileName, callback, pollingInterval, options) {
6874
+ return createSingleWatcherPerName(pollingWatches, useCaseSensitiveFileNames, fileName, callback, function (cb) { return pollingWatchFileWorker(fileName, cb, pollingInterval, options); });
6875
+ }
6878
6876
  function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6877
+ return createSingleWatcherPerName(recursive ? fsWatchesRecursive : fsWatches, useCaseSensitiveFileNames, fileOrDirectory, callback, function (cb) { return fsWatchHandlingPresence(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions); });
6878
+ }
6879
+ function fsWatchHandlingPresence(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6879
6880
  var lastDirectoryPartWithDirectorySeparator;
6880
6881
  var lastDirectoryPart;
6881
6882
  if (inodeWatching) {
@@ -7054,7 +7055,7 @@ var ts;
7054
7055
  var fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
7055
7056
  var getCurrentDirectory = ts.memoize(function () { return process.cwd(); });
7056
7057
  var _b = createSystemWatchFunctions({
7057
- pollingWatchFile: createSingleFileWatcherPerName(fsWatchFileWorker, useCaseSensitiveFileNames),
7058
+ pollingWatchFileWorker: fsWatchFileWorker,
7058
7059
  getModifiedTime: getModifiedTime,
7059
7060
  setTimeout: setTimeout,
7060
7061
  clearTimeout: clearTimeout,
@@ -8901,7 +8902,7 @@ var ts;
8901
8902
  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: diag(2591, ts.DiagnosticCategory.Error, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),
8902
8903
  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: diag(2592, ts.DiagnosticCategory.Error, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),
8903
8904
  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: diag(2593, ts.DiagnosticCategory.Error, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),
8904
- This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: diag(2594, ts.DiagnosticCategory.Error, "This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594", "This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag."),
8905
+ This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: diag(2594, ts.DiagnosticCategory.Error, "This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594", "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),
8905
8906
  _0_can_only_be_imported_by_using_a_default_import: diag(2595, ts.DiagnosticCategory.Error, "_0_can_only_be_imported_by_using_a_default_import_2595", "'{0}' can only be imported by using a default import."),
8906
8907
  _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2596, ts.DiagnosticCategory.Error, "_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596", "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),
8907
8908
  _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: diag(2597, ts.DiagnosticCategory.Error, "_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597", "'{0}' can only be imported by using a 'require' call or by using a default import."),
@@ -18128,7 +18129,7 @@ var ts;
18128
18129
  }
18129
18130
  diagnostics = nonFileDiagnostics;
18130
18131
  }
18131
- ts.insertSorted(diagnostics, diagnostic, compareDiagnostics);
18132
+ ts.insertSorted(diagnostics, diagnostic, compareDiagnosticsSkipRelatedInformation);
18132
18133
  }
18133
18134
  function getGlobalDiagnostics() {
18134
18135
  hasReadNonFileDiagnostics = true;
@@ -43105,10 +43106,12 @@ var ts;
43105
43106
  if (resolved) {
43106
43107
  var fileName = resolved.fileName, packageId = resolved.packageId;
43107
43108
  var resolvedFileName = options.preserveSymlinks ? fileName : realPath(fileName, host, traceEnabled);
43109
+ var pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);
43108
43110
  resolvedTypeReferenceDirective = {
43109
43111
  primary: primary,
43110
- resolvedFileName: resolvedFileName,
43111
- originalPath: arePathsEqual(fileName, resolvedFileName, host) ? undefined : fileName,
43112
+ // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43113
+ resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,
43114
+ originalPath: pathsAreEqual ? undefined : fileName,
43112
43115
  packageId: packageId,
43113
43116
  isExternalLibraryImport: pathContainsNodeModules(fileName),
43114
43117
  };
@@ -43893,8 +43896,10 @@ var ts;
43893
43896
  var resolvedValue = resolved_1.value;
43894
43897
  if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
43895
43898
  var path = realPath(resolvedValue.path, host, traceEnabled);
43896
- var originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
43897
- resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
43899
+ var pathsAreEqual = arePathsEqual(path, resolvedValue.path, host);
43900
+ var originalPath = pathsAreEqual ? undefined : resolvedValue.path;
43901
+ // If the path and realpath are differing only in casing prefer path so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43902
+ resolvedValue = __assign(__assign({}, resolvedValue), { path: pathsAreEqual ? resolvedValue.path : path, originalPath: originalPath });
43898
43903
  }
43899
43904
  // For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
43900
43905
  return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
@@ -51055,7 +51060,7 @@ var ts;
51055
51060
  var exportAssignment = exportEqualsSymbol.valueDeclaration;
51056
51061
  var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51057
51062
  if (exportAssignment) {
51058
- ts.addRelatedInfo(err, ts.createDiagnosticForNode(exportAssignment, ts.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName));
51063
+ ts.addRelatedInfo(err, ts.createDiagnosticForNode(exportAssignment, ts.Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName));
51059
51064
  }
51060
51065
  }
51061
51066
  else {
@@ -65728,7 +65733,8 @@ var ts;
65728
65733
  return 0 /* False */;
65729
65734
  }
65730
65735
  }
65731
- var isPerformingCommonPropertyChecks = relation !== comparableRelation && !(intersectionState & 2 /* Target */) &&
65736
+ var isPerformingCommonPropertyChecks = (relation !== comparableRelation || relation === comparableRelation && isLiteralType(source)) &&
65737
+ !(intersectionState & 2 /* Target */) &&
65732
65738
  source.flags & (131068 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source !== globalObjectType &&
65733
65739
  target.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target) &&
65734
65740
  (getPropertiesOfType(source).length > 0 || typeHasCallOrConstructSignatures(source));
@@ -66505,7 +66511,7 @@ var ts;
66505
66511
  // create a new chain for the constraint error
66506
66512
  resetErrorInfo(saveErrorInfo);
66507
66513
  }
66508
- if (result = isRelatedTo(source, constraint, 2 /* Target */, reportErrors)) {
66514
+ if (result = isRelatedTo(source, constraint, 2 /* Target */, reportErrors, /* headMessage */ undefined, intersectionState)) {
66509
66515
  return result;
66510
66516
  }
66511
66517
  // prefer the shorter chain of the constraint comparison chain, and the direct comparison chain
@@ -68211,7 +68217,7 @@ var ts;
68211
68217
  if (!isLiteralOfContextualType(type, contextualType)) {
68212
68218
  type = getWidenedUniqueESSymbolType(getWidenedLiteralType(type));
68213
68219
  }
68214
- return type;
68220
+ return getRegularTypeOfLiteralType(type);
68215
68221
  }
68216
68222
  function getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(type, contextualSignatureReturnType, isAsync) {
68217
68223
  if (type && isUnitType(type)) {
@@ -90408,6 +90414,7 @@ var ts;
90408
90414
  })(ts || (ts = {}));
90409
90415
  var ts;
90410
90416
  (function (ts) {
90417
+ var _a;
90411
90418
  function visitNode(node, visitor, test, lift) {
90412
90419
  if (node === undefined || visitor === undefined) {
90413
90420
  return node;
@@ -90622,12 +90629,10 @@ var ts;
90622
90629
  return updated;
90623
90630
  }
90624
90631
  ts.visitFunctionBody = visitFunctionBody;
90625
- /**
90626
- * Visits an iteration body, adding any block-scoped variables required by the transformation.
90627
- */
90628
- function visitIterationBody(body, visitor, context) {
90632
+ function visitIterationBody(body, visitor, context, nodeVisitor) {
90633
+ if (nodeVisitor === void 0) { nodeVisitor = visitNode; }
90629
90634
  context.startBlockScope();
90630
- var updated = visitNode(body, visitor, ts.isStatement, context.factory.liftToBlock);
90635
+ var updated = nodeVisitor(body, visitor, ts.isStatement, context.factory.liftToBlock);
90631
90636
  var declarations = context.endBlockScope();
90632
90637
  if (ts.some(declarations)) {
90633
90638
  if (ts.isBlock(updated)) {
@@ -90646,456 +90651,443 @@ var ts;
90646
90651
  if (node === undefined) {
90647
90652
  return undefined;
90648
90653
  }
90649
- var kind = node.kind;
90650
- // No need to visit nodes with no children.
90651
- if ((kind > 0 /* FirstToken */ && kind <= 160 /* LastToken */) || kind === 192 /* ThisType */) {
90652
- return node;
90653
- }
90654
- var factory = context.factory;
90655
- switch (kind) {
90656
- // Names
90657
- case 79 /* Identifier */:
90658
- ts.Debug.type(node);
90659
- return factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90660
- case 161 /* QualifiedName */:
90661
- ts.Debug.type(node);
90662
- return factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90663
- case 162 /* ComputedPropertyName */:
90664
- ts.Debug.type(node);
90665
- return factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90666
- // Signature elements
90667
- case 163 /* TypeParameter */:
90668
- ts.Debug.type(node);
90669
- return factory.updateTypeParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.constraint, visitor, ts.isTypeNode), nodeVisitor(node.default, visitor, ts.isTypeNode));
90670
- case 164 /* Parameter */:
90671
- ts.Debug.type(node);
90672
- return factory.updateParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90673
- case 165 /* Decorator */:
90674
- ts.Debug.type(node);
90675
- return factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90676
- // Type elements
90677
- case 166 /* PropertySignature */:
90678
- ts.Debug.type(node);
90679
- return factory.updatePropertySignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90680
- case 167 /* PropertyDeclaration */:
90681
- ts.Debug.type(node);
90682
- return factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90683
- // QuestionToken and ExclamationToken is uniqued in Property Declaration and the signature of 'updateProperty' is that too
90684
- nodeVisitor(node.questionToken || node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90685
- case 168 /* MethodSignature */:
90686
- ts.Debug.type(node);
90687
- return factory.updateMethodSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90688
- case 169 /* MethodDeclaration */:
90689
- ts.Debug.type(node);
90690
- return factory.updateMethodDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90691
- case 171 /* Constructor */:
90692
- ts.Debug.type(node);
90693
- return factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90694
- case 172 /* GetAccessor */:
90695
- ts.Debug.type(node);
90696
- return factory.updateGetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90697
- case 173 /* SetAccessor */:
90698
- ts.Debug.type(node);
90699
- return factory.updateSetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90700
- case 170 /* ClassStaticBlockDeclaration */:
90701
- ts.Debug.type(node);
90702
- context.startLexicalEnvironment();
90703
- context.suspendLexicalEnvironment();
90704
- return factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90705
- case 174 /* CallSignature */:
90706
- ts.Debug.type(node);
90707
- return factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90708
- case 175 /* ConstructSignature */:
90709
- ts.Debug.type(node);
90710
- return factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90711
- case 176 /* IndexSignature */:
90712
- ts.Debug.type(node);
90713
- return factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90714
- // Types
90715
- case 177 /* TypePredicate */:
90716
- ts.Debug.type(node);
90717
- return factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90718
- case 178 /* TypeReference */:
90719
- ts.Debug.type(node);
90720
- return factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90721
- case 179 /* FunctionType */:
90722
- ts.Debug.type(node);
90723
- return factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90724
- case 180 /* ConstructorType */:
90725
- ts.Debug.type(node);
90726
- return factory.updateConstructorTypeNode(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90727
- case 181 /* TypeQuery */:
90728
- ts.Debug.type(node);
90729
- return factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90730
- case 182 /* TypeLiteral */:
90731
- ts.Debug.type(node);
90732
- return factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90733
- case 183 /* ArrayType */:
90734
- ts.Debug.type(node);
90735
- return factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90736
- case 184 /* TupleType */:
90737
- ts.Debug.type(node);
90738
- return factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90739
- case 185 /* OptionalType */:
90740
- ts.Debug.type(node);
90741
- return factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90742
- case 186 /* RestType */:
90743
- ts.Debug.type(node);
90744
- return factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90745
- case 187 /* UnionType */:
90746
- ts.Debug.type(node);
90747
- return factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90748
- case 188 /* IntersectionType */:
90749
- ts.Debug.type(node);
90750
- return factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90751
- case 189 /* ConditionalType */:
90752
- ts.Debug.type(node);
90753
- return factory.updateConditionalTypeNode(node, nodeVisitor(node.checkType, visitor, ts.isTypeNode), nodeVisitor(node.extendsType, visitor, ts.isTypeNode), nodeVisitor(node.trueType, visitor, ts.isTypeNode), nodeVisitor(node.falseType, visitor, ts.isTypeNode));
90754
- case 190 /* InferType */:
90755
- ts.Debug.type(node);
90756
- return factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90757
- case 200 /* ImportType */:
90758
- ts.Debug.type(node);
90759
- return factory.updateImportTypeNode(node, nodeVisitor(node.argument, visitor, ts.isTypeNode), nodeVisitor(node.assertions, visitor, ts.isNode), nodeVisitor(node.qualifier, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), node.isTypeOf);
90760
- case 295 /* ImportTypeAssertionContainer */:
90761
- ts.Debug.type(node);
90762
- return factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isNode), node.multiLine);
90763
- case 197 /* NamedTupleMember */:
90764
- ts.Debug.type(node);
90765
- return factory.updateNamedTupleMember(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90766
- case 191 /* ParenthesizedType */:
90767
- ts.Debug.type(node);
90768
- return factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90769
- case 193 /* TypeOperator */:
90770
- ts.Debug.type(node);
90771
- return factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90772
- case 194 /* IndexedAccessType */:
90773
- ts.Debug.type(node);
90774
- return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90775
- case 195 /* MappedType */:
90776
- ts.Debug.type(node);
90777
- return factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodesVisitor(node.members, visitor, ts.isTypeElement));
90778
- case 196 /* LiteralType */:
90779
- ts.Debug.type(node);
90780
- return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90781
- case 198 /* TemplateLiteralType */:
90782
- ts.Debug.type(node);
90783
- return factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90784
- case 199 /* TemplateLiteralTypeSpan */:
90785
- ts.Debug.type(node);
90786
- return factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90787
- // Binding patterns
90788
- case 201 /* ObjectBindingPattern */:
90789
- ts.Debug.type(node);
90790
- return factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90791
- case 202 /* ArrayBindingPattern */:
90792
- ts.Debug.type(node);
90793
- return factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90794
- case 203 /* BindingElement */:
90795
- ts.Debug.type(node);
90796
- return factory.updateBindingElement(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.propertyName, visitor, ts.isPropertyName), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.initializer, visitor, ts.isExpression));
90797
- // Expression
90798
- case 204 /* ArrayLiteralExpression */:
90799
- ts.Debug.type(node);
90800
- return factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90801
- case 205 /* ObjectLiteralExpression */:
90802
- ts.Debug.type(node);
90803
- return factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90804
- case 206 /* PropertyAccessExpression */:
90805
- if (node.flags & 32 /* OptionalChain */) {
90806
- ts.Debug.type(node);
90807
- return factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName));
90808
- }
90809
- ts.Debug.type(node);
90810
- return factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90811
- case 207 /* ElementAccessExpression */:
90812
- if (node.flags & 32 /* OptionalChain */) {
90813
- ts.Debug.type(node);
90814
- return factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90815
- }
90816
- ts.Debug.type(node);
90817
- return factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90818
- case 208 /* CallExpression */:
90819
- if (node.flags & 32 /* OptionalChain */) {
90820
- ts.Debug.type(node);
90821
- return factory.updateCallChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90822
- }
90823
- ts.Debug.type(node);
90824
- return factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90825
- case 209 /* NewExpression */:
90826
- ts.Debug.type(node);
90827
- return factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90828
- case 210 /* TaggedTemplateExpression */:
90829
- ts.Debug.type(node);
90830
- return factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90831
- case 211 /* TypeAssertionExpression */:
90832
- ts.Debug.type(node);
90833
- return factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90834
- case 212 /* ParenthesizedExpression */:
90835
- ts.Debug.type(node);
90836
- return factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90837
- case 213 /* FunctionExpression */:
90838
- ts.Debug.type(node);
90839
- return factory.updateFunctionExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90840
- case 214 /* ArrowFunction */:
90841
- ts.Debug.type(node);
90842
- return factory.updateArrowFunction(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, ts.isEqualsGreaterThanToken), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90843
- case 215 /* DeleteExpression */:
90844
- ts.Debug.type(node);
90845
- return factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90846
- case 216 /* TypeOfExpression */:
90847
- ts.Debug.type(node);
90848
- return factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90849
- case 217 /* VoidExpression */:
90850
- ts.Debug.type(node);
90851
- return factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90852
- case 218 /* AwaitExpression */:
90853
- ts.Debug.type(node);
90854
- return factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90855
- case 219 /* PrefixUnaryExpression */:
90856
- ts.Debug.type(node);
90857
- return factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90858
- case 220 /* PostfixUnaryExpression */:
90859
- ts.Debug.type(node);
90860
- return factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90861
- case 221 /* BinaryExpression */:
90862
- ts.Debug.type(node);
90863
- return factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90864
- case 222 /* ConditionalExpression */:
90865
- ts.Debug.type(node);
90866
- return factory.updateConditionalExpression(node, nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.whenTrue, visitor, ts.isExpression), nodeVisitor(node.colonToken, tokenVisitor, ts.isColonToken), nodeVisitor(node.whenFalse, visitor, ts.isExpression));
90867
- case 223 /* TemplateExpression */:
90868
- ts.Debug.type(node);
90869
- return factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90870
- case 224 /* YieldExpression */:
90871
- ts.Debug.type(node);
90872
- return factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90873
- case 225 /* SpreadElement */:
90874
- ts.Debug.type(node);
90875
- return factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90876
- case 226 /* ClassExpression */:
90877
- ts.Debug.type(node);
90878
- return factory.updateClassExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90879
- case 228 /* ExpressionWithTypeArguments */:
90880
- ts.Debug.type(node);
90881
- return factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90882
- case 229 /* AsExpression */:
90883
- ts.Debug.type(node);
90884
- return factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90885
- case 230 /* NonNullExpression */:
90886
- if (node.flags & 32 /* OptionalChain */) {
90887
- ts.Debug.type(node);
90888
- return factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90889
- }
90890
- ts.Debug.type(node);
90891
- return factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90892
- case 231 /* MetaProperty */:
90893
- ts.Debug.type(node);
90894
- return factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90895
- // Misc
90896
- case 233 /* TemplateSpan */:
90897
- ts.Debug.type(node);
90898
- return factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90899
- // Element
90900
- case 235 /* Block */:
90901
- ts.Debug.type(node);
90902
- return factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90903
- case 237 /* VariableStatement */:
90904
- ts.Debug.type(node);
90905
- return factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90906
- case 238 /* ExpressionStatement */:
90907
- ts.Debug.type(node);
90908
- return factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90909
- case 239 /* IfStatement */:
90910
- ts.Debug.type(node);
90911
- return factory.updateIfStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.thenStatement, visitor, ts.isStatement, factory.liftToBlock), nodeVisitor(node.elseStatement, visitor, ts.isStatement, factory.liftToBlock));
90912
- case 240 /* DoStatement */:
90913
- ts.Debug.type(node);
90914
- return factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context), nodeVisitor(node.expression, visitor, ts.isExpression));
90915
- case 241 /* WhileStatement */:
90916
- ts.Debug.type(node);
90917
- return factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90918
- case 242 /* ForStatement */:
90919
- ts.Debug.type(node);
90920
- return factory.updateForStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.incrementor, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90921
- case 243 /* ForInStatement */:
90922
- ts.Debug.type(node);
90923
- return factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90924
- case 244 /* ForOfStatement */:
90925
- ts.Debug.type(node);
90926
- return factory.updateForOfStatement(node, nodeVisitor(node.awaitModifier, tokenVisitor, ts.isAwaitKeyword), nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90927
- case 245 /* ContinueStatement */:
90928
- ts.Debug.type(node);
90929
- return factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90930
- case 246 /* BreakStatement */:
90931
- ts.Debug.type(node);
90932
- return factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90933
- case 247 /* ReturnStatement */:
90934
- ts.Debug.type(node);
90935
- return factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90936
- case 248 /* WithStatement */:
90937
- ts.Debug.type(node);
90938
- return factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90939
- case 249 /* SwitchStatement */:
90940
- ts.Debug.type(node);
90941
- return factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90942
- case 250 /* LabeledStatement */:
90943
- ts.Debug.type(node);
90944
- return factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90945
- case 251 /* ThrowStatement */:
90946
- ts.Debug.type(node);
90947
- return factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90948
- case 252 /* TryStatement */:
90949
- ts.Debug.type(node);
90950
- return factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90951
- case 254 /* VariableDeclaration */:
90952
- ts.Debug.type(node);
90953
- return factory.updateVariableDeclaration(node, nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.exclamationToken, tokenVisitor, ts.isExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90954
- case 255 /* VariableDeclarationList */:
90955
- ts.Debug.type(node);
90956
- return factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90957
- case 256 /* FunctionDeclaration */:
90958
- ts.Debug.type(node);
90959
- return factory.updateFunctionDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90960
- case 257 /* ClassDeclaration */:
90961
- ts.Debug.type(node);
90962
- return factory.updateClassDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90963
- case 258 /* InterfaceDeclaration */:
90964
- ts.Debug.type(node);
90965
- return factory.updateInterfaceDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isTypeElement));
90966
- case 259 /* TypeAliasDeclaration */:
90967
- ts.Debug.type(node);
90968
- return factory.updateTypeAliasDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90969
- case 260 /* EnumDeclaration */:
90970
- ts.Debug.type(node);
90971
- return factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90972
- case 261 /* ModuleDeclaration */:
90973
- ts.Debug.type(node);
90974
- return factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90975
- case 262 /* ModuleBlock */:
90976
- ts.Debug.type(node);
90977
- return factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90978
- case 263 /* CaseBlock */:
90979
- ts.Debug.type(node);
90980
- return factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
90981
- case 264 /* NamespaceExportDeclaration */:
90982
- ts.Debug.type(node);
90983
- return factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90984
- case 265 /* ImportEqualsDeclaration */:
90985
- ts.Debug.type(node);
90986
- return factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
90987
- case 266 /* ImportDeclaration */:
90988
- ts.Debug.type(node);
90989
- return factory.updateImportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.importClause, visitor, ts.isImportClause), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
90990
- case 293 /* AssertClause */:
90991
- ts.Debug.type(node);
90992
- return factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
90993
- case 294 /* AssertEntry */:
90994
- ts.Debug.type(node);
90995
- return factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpressionNode));
90996
- case 267 /* ImportClause */:
90997
- ts.Debug.type(node);
90998
- return factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
90999
- case 268 /* NamespaceImport */:
91000
- ts.Debug.type(node);
91001
- return factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91002
- case 274 /* NamespaceExport */:
91003
- ts.Debug.type(node);
91004
- return factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91005
- case 269 /* NamedImports */:
91006
- ts.Debug.type(node);
91007
- return factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91008
- case 270 /* ImportSpecifier */:
91009
- ts.Debug.type(node);
91010
- return factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91011
- case 271 /* ExportAssignment */:
91012
- ts.Debug.type(node);
91013
- return factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91014
- case 272 /* ExportDeclaration */:
91015
- ts.Debug.type(node);
91016
- return factory.updateExportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.exportClause, visitor, ts.isNamedExportBindings), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
91017
- case 273 /* NamedExports */:
91018
- ts.Debug.type(node);
91019
- return factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91020
- case 275 /* ExportSpecifier */:
91021
- ts.Debug.type(node);
91022
- return factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91023
- // Module references
91024
- case 277 /* ExternalModuleReference */:
91025
- ts.Debug.type(node);
91026
- return factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91027
- // JSX
91028
- case 278 /* JsxElement */:
91029
- ts.Debug.type(node);
91030
- return factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91031
- case 279 /* JsxSelfClosingElement */:
91032
- ts.Debug.type(node);
91033
- return factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91034
- case 280 /* JsxOpeningElement */:
91035
- ts.Debug.type(node);
91036
- return factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91037
- case 281 /* JsxClosingElement */:
91038
- ts.Debug.type(node);
91039
- return factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91040
- case 282 /* JsxFragment */:
91041
- ts.Debug.type(node);
91042
- return factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91043
- case 285 /* JsxAttribute */:
91044
- ts.Debug.type(node);
91045
- return factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91046
- case 286 /* JsxAttributes */:
91047
- ts.Debug.type(node);
91048
- return factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91049
- case 287 /* JsxSpreadAttribute */:
91050
- ts.Debug.type(node);
91051
- return factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91052
- case 288 /* JsxExpression */:
91053
- ts.Debug.type(node);
91054
- return factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91055
- // Clauses
91056
- case 289 /* CaseClause */:
91057
- ts.Debug.type(node);
91058
- return factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91059
- case 290 /* DefaultClause */:
91060
- ts.Debug.type(node);
91061
- return factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91062
- case 291 /* HeritageClause */:
91063
- ts.Debug.type(node);
91064
- return factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91065
- case 292 /* CatchClause */:
91066
- ts.Debug.type(node);
91067
- return factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91068
- // Property assignments
91069
- case 296 /* PropertyAssignment */:
91070
- ts.Debug.type(node);
91071
- return factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91072
- case 297 /* ShorthandPropertyAssignment */:
91073
- ts.Debug.type(node);
91074
- return factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91075
- case 298 /* SpreadAssignment */:
91076
- ts.Debug.type(node);
91077
- return factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91078
- // Enum
91079
- case 299 /* EnumMember */:
91080
- ts.Debug.type(node);
91081
- return factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91082
- // Top-level nodes
91083
- case 305 /* SourceFile */:
91084
- ts.Debug.type(node);
91085
- return factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context));
91086
- // Transformation nodes
91087
- case 350 /* PartiallyEmittedExpression */:
91088
- ts.Debug.type(node);
91089
- return factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91090
- case 351 /* CommaListExpression */:
91091
- ts.Debug.type(node);
91092
- return factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91093
- default:
91094
- // No need to visit nodes with no children.
91095
- return node;
91096
- }
90654
+ var fn = visitEachChildTable[node.kind];
90655
+ return fn === undefined ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);
91097
90656
  }
91098
90657
  ts.visitEachChild = visitEachChild;
90658
+ // NOTE: Before you can add a new method to `visitEachChildTable`, you must first ensure the `Node` subtype you
90659
+ // wish to add is defined in the `HasChildren` union in types.ts.
90660
+ var visitEachChildTable = (_a = {},
90661
+ _a[79 /* Identifier */] = function visitEachChildOfIdentifier(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90662
+ return context.factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90663
+ },
90664
+ _a[161 /* QualifiedName */] = function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90665
+ return context.factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90666
+ },
90667
+ _a[162 /* ComputedPropertyName */] = function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90668
+ return context.factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90669
+ },
90670
+ // Signature elements
90671
+ _a[163 /* TypeParameter */] = function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90672
+ return context.factory.updateTypeParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.constraint, visitor, ts.isTypeNode), nodeVisitor(node.default, visitor, ts.isTypeNode));
90673
+ },
90674
+ _a[164 /* Parameter */] = function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90675
+ return context.factory.updateParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90676
+ },
90677
+ _a[165 /* Decorator */] = function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90678
+ return context.factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90679
+ },
90680
+ // Type elements
90681
+ _a[166 /* PropertySignature */] = function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90682
+ return context.factory.updatePropertySignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90683
+ },
90684
+ _a[167 /* PropertyDeclaration */] = function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90685
+ var _a;
90686
+ return context.factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90687
+ // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration
90688
+ nodeVisitor((_a = node.questionToken) !== null && _a !== void 0 ? _a : node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90689
+ },
90690
+ _a[168 /* MethodSignature */] = function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90691
+ return context.factory.updateMethodSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90692
+ },
90693
+ _a[169 /* MethodDeclaration */] = function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90694
+ return context.factory.updateMethodDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90695
+ },
90696
+ _a[171 /* Constructor */] = function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90697
+ return context.factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90698
+ },
90699
+ _a[172 /* GetAccessor */] = function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90700
+ return context.factory.updateGetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90701
+ },
90702
+ _a[173 /* SetAccessor */] = function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90703
+ return context.factory.updateSetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90704
+ },
90705
+ _a[170 /* ClassStaticBlockDeclaration */] = function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90706
+ context.startLexicalEnvironment();
90707
+ context.suspendLexicalEnvironment();
90708
+ return context.factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90709
+ },
90710
+ _a[174 /* CallSignature */] = function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90711
+ return context.factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90712
+ },
90713
+ _a[175 /* ConstructSignature */] = function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90714
+ return context.factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90715
+ },
90716
+ _a[176 /* IndexSignature */] = function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90717
+ return context.factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90718
+ },
90719
+ // Types
90720
+ _a[177 /* TypePredicate */] = function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90721
+ return context.factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90722
+ },
90723
+ _a[178 /* TypeReference */] = function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90724
+ return context.factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90725
+ },
90726
+ _a[179 /* FunctionType */] = function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90727
+ return context.factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90728
+ },
90729
+ _a[180 /* ConstructorType */] = function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90730
+ return context.factory.updateConstructorTypeNode(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90731
+ },
90732
+ _a[181 /* TypeQuery */] = function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90733
+ return context.factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90734
+ },
90735
+ _a[182 /* TypeLiteral */] = function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90736
+ return context.factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90737
+ },
90738
+ _a[183 /* ArrayType */] = function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90739
+ return context.factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90740
+ },
90741
+ _a[184 /* TupleType */] = function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90742
+ return context.factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90743
+ },
90744
+ _a[185 /* OptionalType */] = function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90745
+ return context.factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90746
+ },
90747
+ _a[186 /* RestType */] = function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90748
+ return context.factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90749
+ },
90750
+ _a[187 /* UnionType */] = function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90751
+ return context.factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90752
+ },
90753
+ _a[188 /* IntersectionType */] = function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90754
+ return context.factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90755
+ },
90756
+ _a[189 /* ConditionalType */] = function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90757
+ return context.factory.updateConditionalTypeNode(node, nodeVisitor(node.checkType, visitor, ts.isTypeNode), nodeVisitor(node.extendsType, visitor, ts.isTypeNode), nodeVisitor(node.trueType, visitor, ts.isTypeNode), nodeVisitor(node.falseType, visitor, ts.isTypeNode));
90758
+ },
90759
+ _a[190 /* InferType */] = function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90760
+ return context.factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90761
+ },
90762
+ _a[200 /* ImportType */] = function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90763
+ return context.factory.updateImportTypeNode(node, nodeVisitor(node.argument, visitor, ts.isTypeNode), nodeVisitor(node.assertions, visitor, ts.isImportTypeAssertionContainer), nodeVisitor(node.qualifier, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), node.isTypeOf);
90764
+ },
90765
+ _a[295 /* ImportTypeAssertionContainer */] = function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90766
+ return context.factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isAssertClause), node.multiLine);
90767
+ },
90768
+ _a[197 /* NamedTupleMember */] = function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90769
+ return context.factory.updateNamedTupleMember(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90770
+ },
90771
+ _a[191 /* ParenthesizedType */] = function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90772
+ return context.factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90773
+ },
90774
+ _a[193 /* TypeOperator */] = function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90775
+ return context.factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90776
+ },
90777
+ _a[194 /* IndexedAccessType */] = function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90778
+ return context.factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90779
+ },
90780
+ _a[195 /* MappedType */] = function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90781
+ return context.factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodesVisitor(node.members, visitor, ts.isTypeElement));
90782
+ },
90783
+ _a[196 /* LiteralType */] = function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90784
+ return context.factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90785
+ },
90786
+ _a[198 /* TemplateLiteralType */] = function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90787
+ return context.factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90788
+ },
90789
+ _a[199 /* TemplateLiteralTypeSpan */] = function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90790
+ return context.factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90791
+ },
90792
+ // Binding patterns
90793
+ _a[201 /* ObjectBindingPattern */] = function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90794
+ return context.factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90795
+ },
90796
+ _a[202 /* ArrayBindingPattern */] = function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90797
+ return context.factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90798
+ },
90799
+ _a[203 /* BindingElement */] = function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90800
+ return context.factory.updateBindingElement(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.propertyName, visitor, ts.isPropertyName), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.initializer, visitor, ts.isExpression));
90801
+ },
90802
+ // Expression
90803
+ _a[204 /* ArrayLiteralExpression */] = function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90804
+ return context.factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90805
+ },
90806
+ _a[205 /* ObjectLiteralExpression */] = function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90807
+ return context.factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90808
+ },
90809
+ _a[206 /* PropertyAccessExpression */] = function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90810
+ return ts.isPropertyAccessChain(node) ?
90811
+ context.factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName)) :
90812
+ context.factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90813
+ },
90814
+ _a[207 /* ElementAccessExpression */] = function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90815
+ return ts.isElementAccessChain(node) ?
90816
+ context.factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression)) :
90817
+ context.factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90818
+ },
90819
+ _a[208 /* CallExpression */] = function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90820
+ return ts.isCallChain(node) ?
90821
+ context.factory.updateCallChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression)) :
90822
+ context.factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90823
+ },
90824
+ _a[209 /* NewExpression */] = function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90825
+ return context.factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90826
+ },
90827
+ _a[210 /* TaggedTemplateExpression */] = function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90828
+ return context.factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90829
+ },
90830
+ _a[211 /* TypeAssertionExpression */] = function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90831
+ return context.factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90832
+ },
90833
+ _a[212 /* ParenthesizedExpression */] = function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90834
+ return context.factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90835
+ },
90836
+ _a[213 /* FunctionExpression */] = function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90837
+ return context.factory.updateFunctionExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90838
+ },
90839
+ _a[214 /* ArrowFunction */] = function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90840
+ return context.factory.updateArrowFunction(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, ts.isEqualsGreaterThanToken), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90841
+ },
90842
+ _a[215 /* DeleteExpression */] = function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90843
+ return context.factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90844
+ },
90845
+ _a[216 /* TypeOfExpression */] = function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90846
+ return context.factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90847
+ },
90848
+ _a[217 /* VoidExpression */] = function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90849
+ return context.factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90850
+ },
90851
+ _a[218 /* AwaitExpression */] = function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90852
+ return context.factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90853
+ },
90854
+ _a[219 /* PrefixUnaryExpression */] = function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90855
+ return context.factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90856
+ },
90857
+ _a[220 /* PostfixUnaryExpression */] = function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90858
+ return context.factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90859
+ },
90860
+ _a[221 /* BinaryExpression */] = function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90861
+ return context.factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90862
+ },
90863
+ _a[222 /* ConditionalExpression */] = function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90864
+ return context.factory.updateConditionalExpression(node, nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.whenTrue, visitor, ts.isExpression), nodeVisitor(node.colonToken, tokenVisitor, ts.isColonToken), nodeVisitor(node.whenFalse, visitor, ts.isExpression));
90865
+ },
90866
+ _a[223 /* TemplateExpression */] = function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90867
+ return context.factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90868
+ },
90869
+ _a[224 /* YieldExpression */] = function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90870
+ return context.factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90871
+ },
90872
+ _a[225 /* SpreadElement */] = function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90873
+ return context.factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90874
+ },
90875
+ _a[226 /* ClassExpression */] = function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90876
+ return context.factory.updateClassExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90877
+ },
90878
+ _a[228 /* ExpressionWithTypeArguments */] = function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90879
+ return context.factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90880
+ },
90881
+ _a[229 /* AsExpression */] = function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90882
+ return context.factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90883
+ },
90884
+ _a[230 /* NonNullExpression */] = function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90885
+ return ts.isOptionalChain(node) ?
90886
+ context.factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression)) :
90887
+ context.factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90888
+ },
90889
+ _a[231 /* MetaProperty */] = function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90890
+ return context.factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90891
+ },
90892
+ // Misc
90893
+ _a[233 /* TemplateSpan */] = function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90894
+ return context.factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90895
+ },
90896
+ // Element
90897
+ _a[235 /* Block */] = function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90898
+ return context.factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90899
+ },
90900
+ _a[237 /* VariableStatement */] = function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90901
+ return context.factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90902
+ },
90903
+ _a[238 /* ExpressionStatement */] = function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90904
+ return context.factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90905
+ },
90906
+ _a[239 /* IfStatement */] = function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90907
+ return context.factory.updateIfStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.thenStatement, visitor, ts.isStatement, context.factory.liftToBlock), nodeVisitor(node.elseStatement, visitor, ts.isStatement, context.factory.liftToBlock));
90908
+ },
90909
+ _a[240 /* DoStatement */] = function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90910
+ return context.factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context, nodeVisitor), nodeVisitor(node.expression, visitor, ts.isExpression));
90911
+ },
90912
+ _a[241 /* WhileStatement */] = function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90913
+ return context.factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90914
+ },
90915
+ _a[242 /* ForStatement */] = function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90916
+ return context.factory.updateForStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.incrementor, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90917
+ },
90918
+ _a[243 /* ForInStatement */] = function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90919
+ return context.factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90920
+ },
90921
+ _a[244 /* ForOfStatement */] = function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90922
+ return context.factory.updateForOfStatement(node, nodeVisitor(node.awaitModifier, tokenVisitor, ts.isAwaitKeyword), nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90923
+ },
90924
+ _a[245 /* ContinueStatement */] = function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90925
+ return context.factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90926
+ },
90927
+ _a[246 /* BreakStatement */] = function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90928
+ return context.factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90929
+ },
90930
+ _a[247 /* ReturnStatement */] = function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90931
+ return context.factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90932
+ },
90933
+ _a[248 /* WithStatement */] = function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90934
+ return context.factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90935
+ },
90936
+ _a[249 /* SwitchStatement */] = function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90937
+ return context.factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90938
+ },
90939
+ _a[250 /* LabeledStatement */] = function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90940
+ return context.factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90941
+ },
90942
+ _a[251 /* ThrowStatement */] = function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90943
+ return context.factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90944
+ },
90945
+ _a[252 /* TryStatement */] = function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90946
+ return context.factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90947
+ },
90948
+ _a[254 /* VariableDeclaration */] = function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90949
+ return context.factory.updateVariableDeclaration(node, nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.exclamationToken, tokenVisitor, ts.isExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90950
+ },
90951
+ _a[255 /* VariableDeclarationList */] = function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90952
+ return context.factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90953
+ },
90954
+ _a[256 /* FunctionDeclaration */] = function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90955
+ return context.factory.updateFunctionDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90956
+ },
90957
+ _a[257 /* ClassDeclaration */] = function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90958
+ return context.factory.updateClassDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90959
+ },
90960
+ _a[258 /* InterfaceDeclaration */] = function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90961
+ return context.factory.updateInterfaceDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isTypeElement));
90962
+ },
90963
+ _a[259 /* TypeAliasDeclaration */] = function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90964
+ return context.factory.updateTypeAliasDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90965
+ },
90966
+ _a[260 /* EnumDeclaration */] = function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90967
+ return context.factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90968
+ },
90969
+ _a[261 /* ModuleDeclaration */] = function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90970
+ return context.factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90971
+ },
90972
+ _a[262 /* ModuleBlock */] = function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90973
+ return context.factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90974
+ },
90975
+ _a[263 /* CaseBlock */] = function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90976
+ return context.factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
90977
+ },
90978
+ _a[264 /* NamespaceExportDeclaration */] = function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90979
+ return context.factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90980
+ },
90981
+ _a[265 /* ImportEqualsDeclaration */] = function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90982
+ return context.factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
90983
+ },
90984
+ _a[266 /* ImportDeclaration */] = function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90985
+ return context.factory.updateImportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.importClause, visitor, ts.isImportClause), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
90986
+ },
90987
+ _a[293 /* AssertClause */] = function visitEachChildOfAssertClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90988
+ return context.factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
90989
+ },
90990
+ _a[294 /* AssertEntry */] = function visitEachChildOfAssertEntry(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90991
+ return context.factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpression));
90992
+ },
90993
+ _a[267 /* ImportClause */] = function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90994
+ return context.factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
90995
+ },
90996
+ _a[268 /* NamespaceImport */] = function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90997
+ return context.factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90998
+ },
90999
+ _a[274 /* NamespaceExport */] = function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91000
+ return context.factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91001
+ },
91002
+ _a[269 /* NamedImports */] = function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91003
+ return context.factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91004
+ },
91005
+ _a[270 /* ImportSpecifier */] = function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91006
+ return context.factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91007
+ },
91008
+ _a[271 /* ExportAssignment */] = function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91009
+ return context.factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91010
+ },
91011
+ _a[272 /* ExportDeclaration */] = function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91012
+ return context.factory.updateExportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.exportClause, visitor, ts.isNamedExportBindings), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
91013
+ },
91014
+ _a[273 /* NamedExports */] = function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91015
+ return context.factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91016
+ },
91017
+ _a[275 /* ExportSpecifier */] = function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91018
+ return context.factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91019
+ },
91020
+ // Module references
91021
+ _a[277 /* ExternalModuleReference */] = function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91022
+ return context.factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91023
+ },
91024
+ // JSX
91025
+ _a[278 /* JsxElement */] = function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91026
+ return context.factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91027
+ },
91028
+ _a[279 /* JsxSelfClosingElement */] = function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91029
+ return context.factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91030
+ },
91031
+ _a[280 /* JsxOpeningElement */] = function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91032
+ return context.factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91033
+ },
91034
+ _a[281 /* JsxClosingElement */] = function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91035
+ return context.factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91036
+ },
91037
+ _a[282 /* JsxFragment */] = function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91038
+ return context.factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91039
+ },
91040
+ _a[285 /* JsxAttribute */] = function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91041
+ return context.factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91042
+ },
91043
+ _a[286 /* JsxAttributes */] = function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91044
+ return context.factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91045
+ },
91046
+ _a[287 /* JsxSpreadAttribute */] = function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91047
+ return context.factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91048
+ },
91049
+ _a[288 /* JsxExpression */] = function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91050
+ return context.factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91051
+ },
91052
+ // Clauses
91053
+ _a[289 /* CaseClause */] = function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91054
+ return context.factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91055
+ },
91056
+ _a[290 /* DefaultClause */] = function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91057
+ return context.factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91058
+ },
91059
+ _a[291 /* HeritageClause */] = function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91060
+ return context.factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91061
+ },
91062
+ _a[292 /* CatchClause */] = function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91063
+ return context.factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91064
+ },
91065
+ // Property assignments
91066
+ _a[296 /* PropertyAssignment */] = function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91067
+ return context.factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91068
+ },
91069
+ _a[297 /* ShorthandPropertyAssignment */] = function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91070
+ return context.factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91071
+ },
91072
+ _a[298 /* SpreadAssignment */] = function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91073
+ return context.factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91074
+ },
91075
+ // Enum
91076
+ _a[299 /* EnumMember */] = function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91077
+ return context.factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91078
+ },
91079
+ // Top-level nodes
91080
+ _a[305 /* SourceFile */] = function visitEachChildOfSourceFile(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91081
+ return context.factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context, /*start*/ undefined, /*ensureUseStrict*/ undefined, nodesVisitor));
91082
+ },
91083
+ // Transformation nodes
91084
+ _a[350 /* PartiallyEmittedExpression */] = function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91085
+ return context.factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91086
+ },
91087
+ _a[351 /* CommaListExpression */] = function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91088
+ return context.factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91089
+ },
91090
+ _a);
91099
91091
  /**
91100
91092
  * Extracts the single node from a NodeArray.
91101
91093
  *
@@ -138495,6 +138487,8 @@ var ts;
138495
138487
  // Similarly, skip past the symbol for 'export ='
138496
138488
  if (importedSymbol.escapedName === "export=") {
138497
138489
  importedSymbol = getExportEqualsLocalSymbol(importedSymbol, checker);
138490
+ if (importedSymbol === undefined)
138491
+ return undefined;
138498
138492
  }
138499
138493
  // If the import has a different name than the export, do not continue searching.
138500
138494
  // If `importedName` is undefined, do continue searching as the export is anonymous.
@@ -138516,19 +138510,19 @@ var ts;
138516
138510
  FindAllReferences.getImportOrExportSymbol = getImportOrExportSymbol;
138517
138511
  function getExportEqualsLocalSymbol(importedSymbol, checker) {
138518
138512
  if (importedSymbol.flags & 2097152 /* Alias */) {
138519
- return ts.Debug.checkDefined(checker.getImmediateAliasedSymbol(importedSymbol));
138513
+ return checker.getImmediateAliasedSymbol(importedSymbol);
138520
138514
  }
138521
138515
  var decl = ts.Debug.checkDefined(importedSymbol.valueDeclaration);
138522
138516
  if (ts.isExportAssignment(decl)) { // `export = class {}`
138523
- return ts.Debug.checkDefined(decl.expression.symbol);
138517
+ return decl.expression.symbol;
138524
138518
  }
138525
138519
  else if (ts.isBinaryExpression(decl)) { // `module.exports = class {}`
138526
- return ts.Debug.checkDefined(decl.right.symbol);
138520
+ return decl.right.symbol;
138527
138521
  }
138528
138522
  else if (ts.isSourceFile(decl)) { // json module
138529
- return ts.Debug.checkDefined(decl.symbol);
138523
+ return decl.symbol;
138530
138524
  }
138531
- return ts.Debug.fail();
138525
+ return undefined;
138532
138526
  }
138533
138527
  // If a reference is a class expression, the exported node would be its parent.
138534
138528
  // If a reference is a variable declaration, the exported node would be the variable statement.
@@ -154805,13 +154799,15 @@ var ts;
154805
154799
  errorCodes: errorCodes,
154806
154800
  getCodeActions: function (context) {
154807
154801
  var errorCode = context.errorCode, preferences = context.preferences, sourceFile = context.sourceFile, span = context.span, program = context.program;
154808
- var info = getFixesInfo(context, errorCode, span.start, /*useAutoImportProvider*/ true);
154802
+ var info = getFixInfos(context, errorCode, span.start, /*useAutoImportProvider*/ true);
154809
154803
  if (!info)
154810
154804
  return undefined;
154811
- var fixes = info.fixes, symbolName = info.symbolName, errorIdentifierText = info.errorIdentifierText;
154812
154805
  var quotePreference = ts.getQuotePreference(sourceFile, preferences);
154813
- return fixes.map(function (fix) { return codeActionForFix(context, sourceFile, symbolName, fix,
154814
- /*includeSymbolNameInDescription*/ symbolName !== errorIdentifierText, quotePreference, program.getCompilerOptions()); });
154806
+ return info.map(function (_a) {
154807
+ var fix = _a.fix, symbolName = _a.symbolName, errorIdentifierText = _a.errorIdentifierText;
154808
+ return codeActionForFix(context, sourceFile, symbolName, fix,
154809
+ /*includeSymbolNameInDescription*/ symbolName !== errorIdentifierText, quotePreference, program.getCompilerOptions());
154810
+ });
154815
154811
  },
154816
154812
  fixIds: [importFixId],
154817
154813
  getAllCodeActions: function (context) {
@@ -154836,10 +154832,10 @@ var ts;
154836
154832
  var newImports = new ts.Map();
154837
154833
  return { addImportFromDiagnostic: addImportFromDiagnostic, addImportFromExportedSymbol: addImportFromExportedSymbol, writeFixes: writeFixes, hasFixes: hasFixes };
154838
154834
  function addImportFromDiagnostic(diagnostic, context) {
154839
- var info = getFixesInfo(context, diagnostic.code, diagnostic.start, useAutoImportProvider);
154840
- if (!info || !info.fixes.length)
154835
+ var info = getFixInfos(context, diagnostic.code, diagnostic.start, useAutoImportProvider);
154836
+ if (!info || !info.length)
154841
154837
  return;
154842
- addImport(info);
154838
+ addImport(ts.first(info));
154843
154839
  }
154844
154840
  function addImportFromExportedSymbol(exportedSymbol, isValidTypeOnlyUseSite) {
154845
154841
  var moduleSymbol = ts.Debug.checkDefined(exportedSymbol.parent);
@@ -154850,13 +154846,12 @@ var ts;
154850
154846
  var useRequire = shouldUseRequire(sourceFile, program);
154851
154847
  var fix = getImportFixForSymbol(sourceFile, exportInfo, moduleSymbol, program, /*useNamespaceInfo*/ undefined, !!isValidTypeOnlyUseSite, useRequire, host, preferences);
154852
154848
  if (fix) {
154853
- addImport({ fixes: [fix], symbolName: symbolName, errorIdentifierText: undefined });
154849
+ addImport({ fix: fix, symbolName: symbolName, errorIdentifierText: undefined });
154854
154850
  }
154855
154851
  }
154856
154852
  function addImport(info) {
154857
154853
  var _a, _b;
154858
- var fixes = info.fixes, symbolName = info.symbolName;
154859
- var fix = ts.first(fixes);
154854
+ var fix = info.fix, symbolName = info.symbolName;
154860
154855
  switch (fix.kind) {
154861
154856
  case 0 /* UseNamespace */:
154862
154857
  addToNamespace.push(fix);
@@ -155040,7 +155035,7 @@ var ts;
155040
155035
  codefix.getImportCompletionAction = getImportCompletionAction;
155041
155036
  function getPromoteTypeOnlyCompletionAction(sourceFile, symbolToken, program, host, formatContext, preferences) {
155042
155037
  var compilerOptions = program.getCompilerOptions();
155043
- var symbolName = getSymbolName(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions);
155038
+ var symbolName = ts.single(getSymbolNamesToImport(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions));
155044
155039
  var fix = getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName, program);
155045
155040
  var includeSymbolNameInDescription = symbolName !== symbolToken.text;
155046
155041
  return fix && codeFixActionToCodeAction(codeActionForFix({ host: host, formatContext: formatContext, preferences: preferences }, sourceFile, symbolName, fix, includeSymbolNameInDescription, 1 /* Double */, compilerOptions));
@@ -155345,7 +155340,7 @@ var ts;
155345
155340
  return { kind: 3 /* AddNew */, moduleSpecifier: moduleSpecifier, importKind: importKind, addAsTypeOnly: addAsTypeOnly, useRequire: useRequire };
155346
155341
  }
155347
155342
  }
155348
- function getFixesInfo(context, errorCode, pos, useAutoImportProvider) {
155343
+ function getFixInfos(context, errorCode, pos, useAutoImportProvider) {
155349
155344
  var symbolToken = ts.getTokenAtPosition(context.sourceFile, pos);
155350
155345
  var info;
155351
155346
  if (errorCode === ts.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code) {
@@ -155355,19 +155350,23 @@ var ts;
155355
155350
  return undefined;
155356
155351
  }
155357
155352
  else if (errorCode === ts.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) {
155358
- var symbolName_1 = getSymbolName(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions());
155353
+ var symbolName_1 = ts.single(getSymbolNamesToImport(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions()));
155359
155354
  var fix = getTypeOnlyPromotionFix(context.sourceFile, symbolToken, symbolName_1, context.program);
155360
- return fix && { fixes: [fix], symbolName: symbolName_1, errorIdentifierText: symbolToken.text };
155355
+ return fix && [{ fix: fix, symbolName: symbolName_1, errorIdentifierText: symbolToken.text }];
155361
155356
  }
155362
155357
  else {
155363
155358
  info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider);
155364
155359
  }
155365
155360
  var packageJsonImportFilter = ts.createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host);
155366
- return info && __assign(__assign({}, info), { fixes: sortFixes(info.fixes, context.sourceFile, context.program, packageJsonImportFilter, context.host) });
155361
+ return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host);
155367
155362
  }
155368
- function sortFixes(fixes, sourceFile, program, packageJsonImportFilter, host) {
155363
+ function sortFixInfo(fixes, sourceFile, program, packageJsonImportFilter, host) {
155369
155364
  var _toPath = function (fileName) { return ts.toPath(fileName, host.getCurrentDirectory(), ts.hostGetCanonicalFileName(host)); };
155370
- return ts.sort(fixes, function (a, b) { return ts.compareValues(a.kind, b.kind) || compareModuleSpecifiers(a, b, sourceFile, program, packageJsonImportFilter.allowsImportingSpecifier, _toPath); });
155365
+ return ts.sort(fixes, function (a, b) {
155366
+ return ts.compareBooleans(!!a.isJsxNamespaceFix, !!b.isJsxNamespaceFix) ||
155367
+ ts.compareValues(a.fix.kind, b.fix.kind) ||
155368
+ compareModuleSpecifiers(a.fix, b.fix, sourceFile, program, packageJsonImportFilter.allowsImportingSpecifier, _toPath);
155369
+ });
155371
155370
  }
155372
155371
  function getBestFix(fixes, sourceFile, program, packageJsonImportFilter, host) {
155373
155372
  if (!ts.some(fixes))
@@ -155418,7 +155417,6 @@ var ts;
155418
155417
  return 0 /* EqualTo */;
155419
155418
  }
155420
155419
  function getFixesInfoForUMDImport(_a, token) {
155421
- var _b;
155422
155420
  var sourceFile = _a.sourceFile, program = _a.program, host = _a.host, preferences = _a.preferences;
155423
155421
  var checker = program.getTypeChecker();
155424
155422
  var umdSymbol = getUmdSymbol(token, checker);
@@ -155430,7 +155428,7 @@ var ts;
155430
155428
  var useRequire = shouldUseRequire(sourceFile, program);
155431
155429
  var position = ts.isIdentifier(token) ? token.getStart(sourceFile) : undefined;
155432
155430
  var fixes = getImportFixes(exportInfo, position ? { position: position, symbolName: symbolName } : undefined, /*isValidTypeOnlyUseSite*/ false, useRequire, program, sourceFile, host, preferences).fixes;
155433
- return { fixes: fixes, symbolName: symbolName, errorIdentifierText: (_b = ts.tryCast(token, ts.isIdentifier)) === null || _b === void 0 ? void 0 : _b.text };
155431
+ return fixes.map(function (fix) { var _a; return ({ fix: fix, symbolName: symbolName, errorIdentifierText: (_a = ts.tryCast(token, ts.isIdentifier)) === null || _a === void 0 ? void 0 : _a.text }); });
155434
155432
  }
155435
155433
  function getUmdSymbol(token, checker) {
155436
155434
  // try the identifier to see if it is the umd symbol
@@ -155491,19 +155489,20 @@ var ts;
155491
155489
  var sourceFile = _a.sourceFile, program = _a.program, cancellationToken = _a.cancellationToken, host = _a.host, preferences = _a.preferences;
155492
155490
  var checker = program.getTypeChecker();
155493
155491
  var compilerOptions = program.getCompilerOptions();
155494
- var symbolName = getSymbolName(sourceFile, checker, symbolToken, compilerOptions);
155495
- // "default" is a keyword and not a legal identifier for the import, but appears as an identifier.
155496
- if (symbolName === "default" /* Default */) {
155497
- return undefined;
155498
- }
155499
- var isValidTypeOnlyUseSite = ts.isValidTypeOnlyAliasUseSite(symbolToken);
155500
- var useRequire = shouldUseRequire(sourceFile, program);
155501
- var exportInfo = getExportInfos(symbolName, ts.isJSXTagName(symbolToken), ts.getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences);
155502
- var fixes = ts.arrayFrom(ts.flatMapIterator(exportInfo.entries(), function (_a) {
155503
- var _ = _a[0], exportInfos = _a[1];
155504
- return getImportFixes(exportInfos, { symbolName: symbolName, position: symbolToken.getStart(sourceFile) }, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes;
155505
- }));
155506
- return { fixes: fixes, symbolName: symbolName, errorIdentifierText: symbolToken.text };
155492
+ return ts.flatMap(getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions), function (symbolName) {
155493
+ // "default" is a keyword and not a legal identifier for the import, but appears as an identifier.
155494
+ if (symbolName === "default" /* Default */) {
155495
+ return undefined;
155496
+ }
155497
+ var isValidTypeOnlyUseSite = ts.isValidTypeOnlyAliasUseSite(symbolToken);
155498
+ var useRequire = shouldUseRequire(sourceFile, program);
155499
+ var exportInfo = getExportInfos(symbolName, ts.isJSXTagName(symbolToken), ts.getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences);
155500
+ var fixes = ts.arrayFrom(ts.flatMapIterator(exportInfo.entries(), function (_a) {
155501
+ var _ = _a[0], exportInfos = _a[1];
155502
+ return getImportFixes(exportInfos, { symbolName: symbolName, position: symbolToken.getStart(sourceFile) }, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes;
155503
+ }));
155504
+ return fixes.map(function (fix) { return ({ fix: fix, symbolName: symbolName, errorIdentifierText: symbolToken.text, isJsxNamespaceFix: symbolName !== symbolToken.text }); });
155505
+ });
155507
155506
  }
155508
155507
  function getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName, program) {
155509
155508
  var checker = program.getTypeChecker();
@@ -155515,15 +155514,16 @@ var ts;
155515
155514
  return undefined;
155516
155515
  return { kind: 4 /* PromoteTypeOnly */, typeOnlyAliasDeclaration: typeOnlyAliasDeclaration };
155517
155516
  }
155518
- function getSymbolName(sourceFile, checker, symbolToken, compilerOptions) {
155517
+ function getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions) {
155519
155518
  var parent = symbolToken.parent;
155520
155519
  if ((ts.isJsxOpeningLikeElement(parent) || ts.isJsxClosingElement(parent)) && parent.tagName === symbolToken && ts.jsxModeNeedsExplicitImport(compilerOptions.jsx)) {
155521
155520
  var jsxNamespace = checker.getJsxNamespace(sourceFile);
155522
155521
  if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) {
155523
- return jsxNamespace;
155522
+ var needsComponentNameFix = !ts.isIntrinsicJsxName(symbolToken.text) && !checker.resolveName(symbolToken.text, symbolToken, 111551 /* Value */, /*excludeGlobals*/ false);
155523
+ return needsComponentNameFix ? [symbolToken.text, jsxNamespace] : [jsxNamespace];
155524
155524
  }
155525
155525
  }
155526
- return symbolToken.text;
155526
+ return [symbolToken.text];
155527
155527
  }
155528
155528
  function needsJsxNamespaceFix(jsxNamespace, symbolToken, checker) {
155529
155529
  if (ts.isIntrinsicJsxName(symbolToken.text))
@@ -159732,23 +159732,36 @@ var ts;
159732
159732
  * @param body If defined, this will be the body of the member node passed to `addClassElement`. Otherwise, the body will default to a stub.
159733
159733
  */
159734
159734
  function addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, preserveOptional, isAmbient) {
159735
+ var _a;
159735
159736
  if (preserveOptional === void 0) { preserveOptional = 3 /* All */; }
159736
159737
  if (isAmbient === void 0) { isAmbient = false; }
159737
159738
  var declarations = symbol.getDeclarations();
159738
- if (!(declarations && declarations.length)) {
159739
- return undefined;
159740
- }
159739
+ var declaration = declarations === null || declarations === void 0 ? void 0 : declarations[0];
159741
159740
  var checker = context.program.getTypeChecker();
159742
159741
  var scriptTarget = ts.getEmitScriptTarget(context.program.getCompilerOptions());
159743
- var declaration = declarations[0];
159742
+ /**
159743
+ * (#49811)
159744
+ * Note that there are cases in which the symbol declaration is not present. For example, in the code below both
159745
+ * `MappedIndirect.ax` and `MappedIndirect.ay` have no declaration node attached (due to their mapped-type
159746
+ * parent):
159747
+ *
159748
+ * >>> ```ts
159749
+ * >>> type Base = { ax: number; ay: string };
159750
+ * >>> type BaseKeys = keyof Base;
159751
+ * >>> type MappedIndirect = { [K in BaseKeys]: boolean };
159752
+ * >>> ```
159753
+ *
159754
+ * In such cases, we assume the declaration to be a `PropertySignature`.
159755
+ */
159756
+ var kind = (_a = declaration === null || declaration === void 0 ? void 0 : declaration.kind) !== null && _a !== void 0 ? _a : 166 /* PropertySignature */;
159744
159757
  var name = ts.getSynthesizedDeepClone(ts.getNameOfDeclaration(declaration), /*includeTrivia*/ false);
159745
- var visibilityModifier = createVisibilityModifier(ts.getEffectiveModifierFlags(declaration));
159758
+ var visibilityModifier = createVisibilityModifier(declaration ? ts.getEffectiveModifierFlags(declaration) : 0 /* None */);
159746
159759
  var modifiers = visibilityModifier ? ts.factory.createNodeArray([visibilityModifier]) : undefined;
159747
159760
  var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
159748
159761
  var optional = !!(symbol.flags & 16777216 /* Optional */);
159749
159762
  var ambient = !!(enclosingDeclaration.flags & 16777216 /* Ambient */) || isAmbient;
159750
159763
  var quotePreference = ts.getQuotePreference(sourceFile, preferences);
159751
- switch (declaration.kind) {
159764
+ switch (kind) {
159752
159765
  case 166 /* PropertySignature */:
159753
159766
  case 167 /* PropertyDeclaration */:
159754
159767
  var flags = quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : undefined;
@@ -159760,11 +159773,12 @@ var ts;
159760
159773
  importSymbols(importAdder, importableReference.symbols);
159761
159774
  }
159762
159775
  }
159763
- addClassElement(ts.factory.createPropertyDeclaration(modifiers, name, optional && (preserveOptional & 2 /* Property */) ? ts.factory.createToken(57 /* QuestionToken */) : undefined, typeNode,
159776
+ addClassElement(ts.factory.createPropertyDeclaration(modifiers, declaration ? name : symbol.getName(), optional && (preserveOptional & 2 /* Property */) ? ts.factory.createToken(57 /* QuestionToken */) : undefined, typeNode,
159764
159777
  /*initializer*/ undefined));
159765
159778
  break;
159766
159779
  case 172 /* GetAccessor */:
159767
159780
  case 173 /* SetAccessor */: {
159781
+ ts.Debug.assertIsDefined(declarations);
159768
159782
  var typeNode_1 = checker.typeToTypeNode(type, enclosingDeclaration, /*flags*/ undefined, getNoopSymbolTrackerWithResolver(context));
159769
159783
  var allAccessors = ts.getAllAccessorDeclarations(declarations, declaration);
159770
159784
  var orderedAccessors = allAccessors.secondAccessor
@@ -159800,6 +159814,7 @@ var ts;
159800
159814
  // If there is more than one overload but no implementation signature
159801
159815
  // (eg: an abstract method or interface declaration), there is a 1-1
159802
159816
  // correspondence of declarations and signatures.
159817
+ ts.Debug.assertIsDefined(declarations);
159803
159818
  var signatures = type.isUnion() ? ts.flatMap(type.types, function (t) { return t.getCallSignatures(); }) : type.getCallSignatures();
159804
159819
  if (!ts.some(signatures)) {
159805
159820
  break;
@@ -159810,8 +159825,8 @@ var ts;
159810
159825
  outputMethod(quotePreference, signature, modifiers, name, ambient ? undefined : body || createStubbedMethodBody(quotePreference));
159811
159826
  break;
159812
159827
  }
159813
- for (var _a = 0, signatures_1 = signatures; _a < signatures_1.length; _a++) {
159814
- var signature = signatures_1[_a];
159828
+ for (var _b = 0, signatures_1 = signatures; _b < signatures_1.length; _b++) {
159829
+ var signature = signatures_1[_b];
159815
159830
  // Ensure nodes are fresh so they can have different positions when going through formatting.
159816
159831
  outputMethod(quotePreference, signature, ts.getSynthesizedDeepClones(modifiers, /*includeTrivia*/ false), ts.getSynthesizedDeepClone(name, /*includeTrivia*/ false));
159817
159832
  }
@@ -184049,20 +184064,6 @@ var ts;
184049
184064
  }
184050
184065
  // Override sys.write because fs.writeSync is not reliable on Node 4
184051
184066
  sys.write = function (s) { return writeMessage(sys.bufferFrom(s, "utf8")); };
184052
- // REVIEW: for now this implementation uses polling.
184053
- // The advantage of polling is that it works reliably
184054
- // on all os and with network mounted files.
184055
- // For 90 referenced files, the average time to detect
184056
- // changes is 2*msInterval (by default 5 seconds).
184057
- // The overhead of this is .04 percent (1/2500) with
184058
- // average pause of < 1 millisecond (and max
184059
- // pause less than 1.5 milliseconds); question is
184060
- // do we anticipate reference sets in the 100s and
184061
- // do we care about waiting 10-20 seconds to detect
184062
- // changes for large reference sets? If so, do we want
184063
- // to increase the chunk size or decrease the interval
184064
- // time dynamically to match the large reference set?
184065
- sys.defaultWatchFileKind = function () { return ts.WatchFileKind.FixedChunkSizePolling; };
184066
184067
  /* eslint-disable no-restricted-globals */
184067
184068
  sys.setTimeout = setTimeout;
184068
184069
  sys.clearTimeout = clearTimeout;