typescript 4.6.0-dev.20211114 → 4.6.0-dev.20211118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.6";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20211114";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20211118";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  function tryGetNativeMap() {
@@ -42581,8 +42581,8 @@ var ts;
42581
42581
  }
42582
42582
  var expandedParams = getExpandedParameters(signature, true)[0];
42583
42583
  var parameters = (ts.some(expandedParams, function (p) { return p !== expandedParams[expandedParams.length - 1] && !!(ts.getCheckFlags(p) & 32768); }) ? signature.parameters : expandedParams).map(function (parameter) { return symbolToParameterDeclaration(parameter, context, kind === 170, options === null || options === void 0 ? void 0 : options.privateSymbolVisitor, options === null || options === void 0 ? void 0 : options.bundledImports); });
42584
- if (signature.thisParameter) {
42585
- var thisParameter = symbolToParameterDeclaration(signature.thisParameter, context);
42584
+ var thisParameter = tryGetThisParameterDeclaration(signature, context);
42585
+ if (thisParameter) {
42586
42586
  parameters.unshift(thisParameter);
42587
42587
  }
42588
42588
  var returnTypeNode;
@@ -42631,6 +42631,17 @@ var ts;
42631
42631
  }
42632
42632
  return node;
42633
42633
  }
42634
+ function tryGetThisParameterDeclaration(signature, context) {
42635
+ if (signature.thisParameter) {
42636
+ return symbolToParameterDeclaration(signature.thisParameter, context);
42637
+ }
42638
+ if (signature.declaration) {
42639
+ var thisTag = ts.getJSDocThisTag(signature.declaration);
42640
+ if (thisTag && thisTag.typeExpression) {
42641
+ return ts.factory.createParameterDeclaration(undefined, undefined, undefined, "this", undefined, typeToTypeNodeHelper(getTypeFromTypeNode(thisTag.typeExpression), context));
42642
+ }
42643
+ }
42644
+ }
42634
42645
  function typeParameterToDeclarationWithConstraint(type, context, constraintNode) {
42635
42646
  var savedContextFlags = context.flags;
42636
42647
  context.flags &= ~512;
@@ -89224,6 +89235,7 @@ var ts;
89224
89235
  return emitJSDocSignature(node);
89225
89236
  case 325:
89226
89237
  case 330:
89238
+ case 335:
89227
89239
  return emitJSDocSimpleTag(node);
89228
89240
  case 326:
89229
89241
  case 327:
@@ -89235,7 +89247,6 @@ var ts;
89235
89247
  case 332:
89236
89248
  case 333:
89237
89249
  case 334:
89238
- case 335:
89239
89250
  return;
89240
89251
  case 336:
89241
89252
  return emitJSDocCallbackTag(node);
@@ -94217,6 +94228,7 @@ var ts;
94217
94228
  newSourceFile.originalFileName = oldSourceFile.originalFileName;
94218
94229
  newSourceFile.resolvedPath = oldSourceFile.resolvedPath;
94219
94230
  newSourceFile.fileName = oldSourceFile.fileName;
94231
+ newSourceFile.impliedNodeFormat = oldSourceFile.impliedNodeFormat;
94220
94232
  var packageName = oldProgram.sourceFileToPackageName.get(oldSourceFile.path);
94221
94233
  if (packageName !== undefined) {
94222
94234
  var prevKind = seenPackageNames.get(packageName);
@@ -95424,7 +95436,7 @@ var ts;
95424
95436
  return resolvedRef;
95425
95437
  }
95426
95438
  function verifyCompilerOptions() {
95427
- var isNightly = ts.stringContains(ts.version, "-dev");
95439
+ var isNightly = ts.stringContains(ts.version, "-dev") || ts.stringContains(ts.version, "-insiders");
95428
95440
  if (!isNightly) {
95429
95441
  if (ts.getEmitModuleKind(options) === ts.ModuleKind.Node12) {
95430
95442
  createOptionValueDiagnostic("module", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "node12");
package/lib/tsserver.js CHANGED
@@ -100,7 +100,7 @@ var ts;
100
100
  // The following is baselined as a literal template type without intervention
101
101
  /** The version of the TypeScript compiler release */
102
102
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
103
- ts.version = ts.versionMajorMinor + ".0-dev.20211114";
103
+ ts.version = ts.versionMajorMinor + ".0-dev.20211118";
104
104
  /* @internal */
105
105
  var Comparison;
106
106
  (function (Comparison) {
@@ -51666,8 +51666,8 @@ var ts;
51666
51666
  var expandedParams = getExpandedParameters(signature, /*skipUnionExpanding*/ true)[0];
51667
51667
  // If the expanded parameter list had a variadic in a non-trailing position, don't expand it
51668
51668
  var parameters = (ts.some(expandedParams, function (p) { return p !== expandedParams[expandedParams.length - 1] && !!(ts.getCheckFlags(p) & 32768 /* RestParameter */); }) ? signature.parameters : expandedParams).map(function (parameter) { return symbolToParameterDeclaration(parameter, context, kind === 170 /* Constructor */, options === null || options === void 0 ? void 0 : options.privateSymbolVisitor, options === null || options === void 0 ? void 0 : options.bundledImports); });
51669
- if (signature.thisParameter) {
51670
- var thisParameter = symbolToParameterDeclaration(signature.thisParameter, context);
51669
+ var thisParameter = tryGetThisParameterDeclaration(signature, context);
51670
+ if (thisParameter) {
51671
51671
  parameters.unshift(thisParameter);
51672
51672
  }
51673
51673
  var returnTypeNode;
@@ -51716,6 +51716,21 @@ var ts;
51716
51716
  }
51717
51717
  return node;
51718
51718
  }
51719
+ function tryGetThisParameterDeclaration(signature, context) {
51720
+ if (signature.thisParameter) {
51721
+ return symbolToParameterDeclaration(signature.thisParameter, context);
51722
+ }
51723
+ if (signature.declaration) {
51724
+ var thisTag = ts.getJSDocThisTag(signature.declaration);
51725
+ if (thisTag && thisTag.typeExpression) {
51726
+ return ts.factory.createParameterDeclaration(
51727
+ /* decorators */ undefined,
51728
+ /* modifiers */ undefined,
51729
+ /* dotDotDotToken */ undefined, "this",
51730
+ /* questionToken */ undefined, typeToTypeNodeHelper(getTypeFromTypeNode(thisTag.typeExpression), context));
51731
+ }
51732
+ }
51733
+ }
51719
51734
  function typeParameterToDeclarationWithConstraint(type, context, constraintNode) {
51720
51735
  var savedContextFlags = context.flags;
51721
51736
  context.flags &= ~512 /* WriteTypeParametersInQualifiedName */; // Avoids potential infinite loop when building for a claimspace with a generic
@@ -108677,6 +108692,7 @@ var ts;
108677
108692
  return emitJSDocSignature(node);
108678
108693
  case 325 /* JSDocTag */:
108679
108694
  case 330 /* JSDocClassTag */:
108695
+ case 335 /* JSDocOverrideTag */:
108680
108696
  return emitJSDocSimpleTag(node);
108681
108697
  case 326 /* JSDocAugmentsTag */:
108682
108698
  case 327 /* JSDocImplementsTag */:
@@ -108689,7 +108705,6 @@ var ts;
108689
108705
  case 332 /* JSDocPrivateTag */:
108690
108706
  case 333 /* JSDocProtectedTag */:
108691
108707
  case 334 /* JSDocReadonlyTag */:
108692
- case 335 /* JSDocOverrideTag */:
108693
108708
  return;
108694
108709
  case 336 /* JSDocCallbackTag */:
108695
108710
  return emitJSDocCallbackTag(node);
@@ -114269,6 +114284,7 @@ var ts;
114269
114284
  newSourceFile.originalFileName = oldSourceFile.originalFileName;
114270
114285
  newSourceFile.resolvedPath = oldSourceFile.resolvedPath;
114271
114286
  newSourceFile.fileName = oldSourceFile.fileName;
114287
+ newSourceFile.impliedNodeFormat = oldSourceFile.impliedNodeFormat;
114272
114288
  var packageName = oldProgram.sourceFileToPackageName.get(oldSourceFile.path);
114273
114289
  if (packageName !== undefined) {
114274
114290
  // If there are 2 different source files for the same package name and at least one of them changes,
@@ -115646,7 +115662,7 @@ var ts;
115646
115662
  return resolvedRef;
115647
115663
  }
115648
115664
  function verifyCompilerOptions() {
115649
- var isNightly = ts.stringContains(ts.version, "-dev");
115665
+ var isNightly = ts.stringContains(ts.version, "-dev") || ts.stringContains(ts.version, "-insiders");
115650
115666
  if (!isNightly) {
115651
115667
  if (ts.getEmitModuleKind(options) === ts.ModuleKind.Node12) {
115652
115668
  createOptionValueDiagnostic("module", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "node12");
@@ -144584,6 +144600,26 @@ var ts;
144584
144600
  var indent = sourceFile.text.slice(startPosition, fnStart);
144585
144601
  this.insertNodeAt(sourceFile, fnStart, tag, { preserveLeadingWhitespace: false, suffix: this.newLineCharacter + indent });
144586
144602
  };
144603
+ ChangeTracker.prototype.addJSDocTags = function (sourceFile, parent, newTags) {
144604
+ var comments = ts.flatMap(parent.jsDoc, function (j) { return typeof j.comment === "string" ? ts.factory.createJSDocText(j.comment) : j.comment; });
144605
+ var oldTags = ts.flatMapToMutable(parent.jsDoc, function (j) { return j.tags; });
144606
+ var unmergedNewTags = newTags.filter(function (newTag) { return !oldTags.some(function (tag, i) {
144607
+ var merged = tryMergeJsdocTags(tag, newTag);
144608
+ if (merged)
144609
+ oldTags[i] = merged;
144610
+ return !!merged;
144611
+ }); });
144612
+ var tag = ts.factory.createJSDocComment(ts.factory.createNodeArray(ts.intersperse(comments, ts.factory.createJSDocText("\n"))), ts.factory.createNodeArray(__spreadArray(__spreadArray([], oldTags, true), unmergedNewTags, true)));
144613
+ var host = updateJSDocHost(parent);
144614
+ this.insertJsdocCommentBefore(sourceFile, host, tag);
144615
+ };
144616
+ ChangeTracker.prototype.filterJSDocTags = function (sourceFile, parent, predicate) {
144617
+ var comments = ts.flatMap(parent.jsDoc, function (j) { return typeof j.comment === "string" ? ts.factory.createJSDocText(j.comment) : j.comment; });
144618
+ var oldTags = ts.flatMapToMutable(parent.jsDoc, function (j) { return j.tags; });
144619
+ var tag = ts.factory.createJSDocComment(ts.factory.createNodeArray(ts.intersperse(comments, ts.factory.createJSDocText("\n"))), ts.factory.createNodeArray(__spreadArray([], (ts.filter(oldTags, predicate) || ts.emptyArray), true)));
144620
+ var host = updateJSDocHost(parent);
144621
+ this.insertJsdocCommentBefore(sourceFile, host, tag);
144622
+ };
144587
144623
  ChangeTracker.prototype.replaceRangeWithText = function (sourceFile, range, text) {
144588
144624
  this.changes.push({ kind: ChangeKind.Text, sourceFile: sourceFile, range: range, text: text });
144589
144625
  };
@@ -144978,6 +145014,33 @@ var ts;
144978
145014
  return ChangeTracker;
144979
145015
  }());
144980
145016
  textChanges_3.ChangeTracker = ChangeTracker;
145017
+ function updateJSDocHost(parent) {
145018
+ if (parent.kind !== 213 /* ArrowFunction */) {
145019
+ return parent;
145020
+ }
145021
+ var jsDocNode = parent.parent.kind === 166 /* PropertyDeclaration */ ?
145022
+ parent.parent :
145023
+ parent.parent.parent;
145024
+ jsDocNode.jsDoc = parent.jsDoc;
145025
+ jsDocNode.jsDocCache = parent.jsDocCache;
145026
+ return jsDocNode;
145027
+ }
145028
+ function tryMergeJsdocTags(oldTag, newTag) {
145029
+ if (oldTag.kind !== newTag.kind) {
145030
+ return undefined;
145031
+ }
145032
+ switch (oldTag.kind) {
145033
+ case 338 /* JSDocParameterTag */: {
145034
+ var oldParam = oldTag;
145035
+ var newParam = newTag;
145036
+ return ts.isIdentifier(oldParam.name) && ts.isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText
145037
+ ? ts.factory.createJSDocParameterTag(/*tagName*/ undefined, newParam.name, /*isBracketed*/ false, newParam.typeExpression, newParam.isNameFirst, oldParam.comment)
145038
+ : undefined;
145039
+ }
145040
+ case 339 /* JSDocReturnTag */:
145041
+ return ts.factory.createJSDocReturnTag(/*tagName*/ undefined, newTag.typeExpression, oldTag.comment);
145042
+ }
145043
+ }
144981
145044
  // find first non-whitespace position in the leading trivia of the node
144982
145045
  function startPositionToDeleteNodeInList(sourceFile, node) {
144983
145046
  return ts.skipTrivia(sourceFile.text, getAdjustedStartPosition(sourceFile, node, { leadingTriviaOption: LeadingTriviaOption.IncludeAll }), /*stopAfterLineBreak*/ false, /*stopAtComments*/ true);
@@ -149226,35 +149289,72 @@ var ts;
149226
149289
  ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,
149227
149290
  ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,
149228
149291
  ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,
149229
- ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code
149292
+ ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code,
149293
+ ts.Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,
149294
+ ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code,
149295
+ ts.Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,
149296
+ ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code,
149230
149297
  ];
149231
149298
  var errorCodeFixIdMap = (_a = {},
149232
- _a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code] = [
149233
- ts.Diagnostics.Add_override_modifier, fixAddOverrideId, ts.Diagnostics.Add_all_missing_override_modifiers,
149234
- ],
149235
- _a[ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code] = [
149236
- ts.Diagnostics.Remove_override_modifier, fixRemoveOverrideId, ts.Diagnostics.Remove_all_unnecessary_override_modifiers
149237
- ],
149238
- _a[ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code] = [
149239
- ts.Diagnostics.Add_override_modifier, fixAddOverrideId, ts.Diagnostics.Add_all_missing_override_modifiers,
149240
- ],
149241
- _a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code] = [
149242
- ts.Diagnostics.Add_override_modifier, fixAddOverrideId, ts.Diagnostics.Remove_all_unnecessary_override_modifiers
149243
- ],
149244
- _a[ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code] = [
149245
- ts.Diagnostics.Remove_override_modifier, fixRemoveOverrideId, ts.Diagnostics.Remove_all_unnecessary_override_modifiers
149246
- ],
149299
+ // case #1:
149300
+ _a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code] = {
149301
+ descriptions: ts.Diagnostics.Add_override_modifier,
149302
+ fixId: fixAddOverrideId,
149303
+ fixAllDescriptions: ts.Diagnostics.Add_all_missing_override_modifiers,
149304
+ },
149305
+ _a[ts.Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code] = {
149306
+ descriptions: ts.Diagnostics.Add_override_modifier,
149307
+ fixId: fixAddOverrideId,
149308
+ fixAllDescriptions: ts.Diagnostics.Add_all_missing_override_modifiers
149309
+ },
149310
+ // case #2:
149311
+ _a[ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code] = {
149312
+ descriptions: ts.Diagnostics.Remove_override_modifier,
149313
+ fixId: fixRemoveOverrideId,
149314
+ fixAllDescriptions: ts.Diagnostics.Remove_all_unnecessary_override_modifiers,
149315
+ },
149316
+ _a[ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code] = {
149317
+ descriptions: ts.Diagnostics.Remove_override_modifier,
149318
+ fixId: fixRemoveOverrideId,
149319
+ fixAllDescriptions: ts.Diagnostics.Remove_override_modifier
149320
+ },
149321
+ // case #3:
149322
+ _a[ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code] = {
149323
+ descriptions: ts.Diagnostics.Add_override_modifier,
149324
+ fixId: fixAddOverrideId,
149325
+ fixAllDescriptions: ts.Diagnostics.Add_all_missing_override_modifiers,
149326
+ },
149327
+ _a[ts.Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code] = {
149328
+ descriptions: ts.Diagnostics.Add_override_modifier,
149329
+ fixId: fixAddOverrideId,
149330
+ fixAllDescriptions: ts.Diagnostics.Add_all_missing_override_modifiers,
149331
+ },
149332
+ // case #4:
149333
+ _a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code] = {
149334
+ descriptions: ts.Diagnostics.Add_override_modifier,
149335
+ fixId: fixAddOverrideId,
149336
+ fixAllDescriptions: ts.Diagnostics.Remove_all_unnecessary_override_modifiers,
149337
+ },
149338
+ // case #5:
149339
+ _a[ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code] = {
149340
+ descriptions: ts.Diagnostics.Remove_override_modifier,
149341
+ fixId: fixRemoveOverrideId,
149342
+ fixAllDescriptions: ts.Diagnostics.Remove_all_unnecessary_override_modifiers,
149343
+ },
149344
+ _a[ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code] = {
149345
+ descriptions: ts.Diagnostics.Remove_override_modifier,
149346
+ fixId: fixRemoveOverrideId,
149347
+ fixAllDescriptions: ts.Diagnostics.Remove_all_unnecessary_override_modifiers,
149348
+ },
149247
149349
  _a);
149248
149350
  codefix.registerCodeFix({
149249
149351
  errorCodes: errorCodes,
149250
149352
  getCodeActions: function (context) {
149251
- var errorCode = context.errorCode, span = context.span, sourceFile = context.sourceFile;
149353
+ var errorCode = context.errorCode, span = context.span;
149252
149354
  var info = errorCodeFixIdMap[errorCode];
149253
149355
  if (!info)
149254
149356
  return ts.emptyArray;
149255
- var descriptions = info[0], fixId = info[1], fixAllDescriptions = info[2];
149256
- if (ts.isSourceFileJS(sourceFile))
149257
- return ts.emptyArray;
149357
+ var descriptions = info.descriptions, fixId = info.fixId, fixAllDescriptions = info.fixAllDescriptions;
149258
149358
  var changes = ts.textChanges.ChangeTracker.with(context, function (changes) { return dispatchChanges(changes, context, errorCode, span.start); });
149259
149359
  return [
149260
149360
  codefix.createCodeFixActionMaybeFixAll(fixName, changes, descriptions, fixId, fixAllDescriptions)
@@ -149263,9 +149363,9 @@ var ts;
149263
149363
  fixIds: [fixName, fixAddOverrideId, fixRemoveOverrideId],
149264
149364
  getAllCodeActions: function (context) {
149265
149365
  return codefix.codeFixAll(context, errorCodes, function (changes, diag) {
149266
- var code = diag.code, start = diag.start, file = diag.file;
149366
+ var code = diag.code, start = diag.start;
149267
149367
  var info = errorCodeFixIdMap[code];
149268
- if (!info || info[1] !== context.fixId || ts.isSourceFileJS(file)) {
149368
+ if (!info || info.fixId !== context.fixId) {
149269
149369
  return;
149270
149370
  }
149271
149371
  dispatchChanges(changes, context, code, start);
@@ -149275,11 +149375,15 @@ var ts;
149275
149375
  function dispatchChanges(changeTracker, context, errorCode, pos) {
149276
149376
  switch (errorCode) {
149277
149377
  case ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:
149378
+ case ts.Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:
149278
149379
  case ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:
149279
149380
  case ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:
149381
+ case ts.Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:
149280
149382
  return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos);
149281
149383
  case ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:
149384
+ case ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code:
149282
149385
  case ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:
149386
+ case ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code:
149283
149387
  return doRemoveOverrideModifierChange(changeTracker, context.sourceFile, pos);
149284
149388
  default:
149285
149389
  ts.Debug.fail("Unexpected error code: " + errorCode);
@@ -149287,6 +149391,10 @@ var ts;
149287
149391
  }
149288
149392
  function doAddOverrideModifierChange(changeTracker, sourceFile, pos) {
149289
149393
  var classElement = findContainerClassElementLike(sourceFile, pos);
149394
+ if (ts.isSourceFileJS(sourceFile)) {
149395
+ changeTracker.addJSDocTags(sourceFile, classElement, [ts.factory.createJSDocOverrideTag(ts.factory.createIdentifier("override"))]);
149396
+ return;
149397
+ }
149290
149398
  var modifiers = classElement.modifiers || ts.emptyArray;
149291
149399
  var staticModifier = ts.find(modifiers, ts.isStaticModifier);
149292
149400
  var abstractModifier = ts.find(modifiers, ts.isAbstractModifier);
@@ -149300,6 +149408,10 @@ var ts;
149300
149408
  }
149301
149409
  function doRemoveOverrideModifierChange(changeTracker, sourceFile, pos) {
149302
149410
  var classElement = findContainerClassElementLike(sourceFile, pos);
149411
+ if (ts.isSourceFileJS(sourceFile)) {
149412
+ changeTracker.filterJSDocTags(sourceFile, classElement, ts.not(ts.isJSDocOverrideTag));
149413
+ return;
149414
+ }
149303
149415
  var overrideModifier = classElement.modifiers && ts.find(classElement.modifiers, function (modifier) { return modifier.kind === 158 /* OverrideKeyword */; });
149304
149416
  ts.Debug.assertIsDefined(overrideModifier);
149305
149417
  changeTracker.deleteModifier(sourceFile, overrideModifier);
@@ -151663,7 +151775,7 @@ var ts;
151663
151775
  if (typeNode) {
151664
151776
  // Note that the codefix will never fire with an existing `@type` tag, so there is no need to merge tags
151665
151777
  var typeTag = ts.factory.createJSDocTypeTag(/*tagName*/ undefined, ts.factory.createJSDocTypeExpression(typeNode), /*comment*/ undefined);
151666
- addJSDocTags(changes, sourceFile, ts.cast(parent.parent.parent, ts.isExpressionStatement), [typeTag]);
151778
+ changes.addJSDocTags(sourceFile, ts.cast(parent.parent.parent, ts.isExpressionStatement), [typeTag]);
151667
151779
  }
151668
151780
  importAdder.writeFixes(changes);
151669
151781
  return parent;
@@ -151774,7 +151886,7 @@ var ts;
151774
151886
  }
151775
151887
  }
151776
151888
  function annotateJSDocThis(changes, sourceFile, containingFunction, typeNode) {
151777
- addJSDocTags(changes, sourceFile, containingFunction, [
151889
+ changes.addJSDocTags(sourceFile, containingFunction, [
151778
151890
  ts.factory.createJSDocThisTag(/*tagName*/ undefined, ts.factory.createJSDocTypeExpression(typeNode)),
151779
151891
  ]);
151780
151892
  }
@@ -151803,7 +151915,7 @@ var ts;
151803
151915
  }
151804
151916
  var typeExpression = ts.factory.createJSDocTypeExpression(typeNode);
151805
151917
  var typeTag = ts.isGetAccessorDeclaration(declaration) ? ts.factory.createJSDocReturnTag(/*tagName*/ undefined, typeExpression, /*comment*/ undefined) : ts.factory.createJSDocTypeTag(/*tagName*/ undefined, typeExpression, /*comment*/ undefined);
151806
- addJSDocTags(changes, sourceFile, parent, [typeTag]);
151918
+ changes.addJSDocTags(sourceFile, parent, [typeTag]);
151807
151919
  }
151808
151920
  else if (!tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, ts.getEmitScriptTarget(program.getCompilerOptions()))) {
151809
151921
  changes.tryInsertTypeAnnotation(sourceFile, declaration, typeNode);
@@ -151859,45 +151971,7 @@ var ts;
151859
151971
  var name = _a.name, typeNode = _a.typeNode, isOptional = _a.isOptional;
151860
151972
  return ts.factory.createJSDocParameterTag(/*tagName*/ undefined, name, /*isBracketed*/ !!isOptional, ts.factory.createJSDocTypeExpression(typeNode), /* isNameFirst */ false, /*comment*/ undefined);
151861
151973
  });
151862
- addJSDocTags(changes, sourceFile, signature, paramTags);
151863
- }
151864
- }
151865
- function addJSDocTags(changes, sourceFile, parent, newTags) {
151866
- var comments = ts.flatMap(parent.jsDoc, function (j) { return typeof j.comment === "string" ? ts.factory.createJSDocText(j.comment) : j.comment; });
151867
- var oldTags = ts.flatMapToMutable(parent.jsDoc, function (j) { return j.tags; });
151868
- var unmergedNewTags = newTags.filter(function (newTag) { return !oldTags || !oldTags.some(function (tag, i) {
151869
- var merged = tryMergeJsdocTags(tag, newTag);
151870
- if (merged)
151871
- oldTags[i] = merged;
151872
- return !!merged;
151873
- }); });
151874
- var tag = ts.factory.createJSDocComment(ts.factory.createNodeArray(ts.intersperse(comments, ts.factory.createJSDocText("\n"))), ts.factory.createNodeArray(__spreadArray(__spreadArray([], (oldTags || ts.emptyArray), true), unmergedNewTags, true)));
151875
- var jsDocNode = parent.kind === 213 /* ArrowFunction */ ? getJsDocNodeForArrowFunction(parent) : parent;
151876
- jsDocNode.jsDoc = parent.jsDoc;
151877
- jsDocNode.jsDocCache = parent.jsDocCache;
151878
- changes.insertJsdocCommentBefore(sourceFile, jsDocNode, tag);
151879
- }
151880
- codefix.addJSDocTags = addJSDocTags;
151881
- function getJsDocNodeForArrowFunction(signature) {
151882
- if (signature.parent.kind === 166 /* PropertyDeclaration */) {
151883
- return signature.parent;
151884
- }
151885
- return signature.parent.parent;
151886
- }
151887
- function tryMergeJsdocTags(oldTag, newTag) {
151888
- if (oldTag.kind !== newTag.kind) {
151889
- return undefined;
151890
- }
151891
- switch (oldTag.kind) {
151892
- case 338 /* JSDocParameterTag */: {
151893
- var oldParam = oldTag;
151894
- var newParam = newTag;
151895
- return ts.isIdentifier(oldParam.name) && ts.isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText
151896
- ? ts.factory.createJSDocParameterTag(/*tagName*/ undefined, newParam.name, /*isBracketed*/ false, newParam.typeExpression, newParam.isNameFirst, oldParam.comment)
151897
- : undefined;
151898
- }
151899
- case 339 /* JSDocReturnTag */:
151900
- return ts.factory.createJSDocReturnTag(/*tagName*/ undefined, newTag.typeExpression, oldTag.comment);
151974
+ changes.addJSDocTags(sourceFile, signature, paramTags);
151901
151975
  }
151902
151976
  }
151903
151977
  function getReferences(token, program, cancellationToken) {
@@ -165850,15 +165924,15 @@ var ts;
165850
165924
  if (!resolution.resolvedFileName)
165851
165925
  continue;
165852
165926
  var resolvedFileName = resolution.resolvedFileName, originalPath = resolution.originalPath;
165927
+ if (originalPath) {
165928
+ symlinkCache.setSymlinkedDirectoryFromSymlinkedFile(originalPath, resolvedFileName);
165929
+ }
165853
165930
  if (!program.getSourceFile(resolvedFileName) && (!originalPath || !program.getSourceFile(originalPath))) {
165854
165931
  rootNames = ts.append(rootNames, resolvedFileName);
165855
165932
  // Avoid creating a large project that would significantly slow down time to editor interactivity
165856
165933
  if (dependencySelection === 2 /* Auto */ && rootNames.length > this.maxDependencies) {
165857
165934
  return ts.emptyArray;
165858
165935
  }
165859
- if (originalPath) {
165860
- symlinkCache.setSymlinkedDirectoryFromSymlinkedFile(originalPath, resolvedFileName);
165861
- }
165862
165936
  }
165863
165937
  }
165864
165938
  }