typescript 5.0.0-dev.20230216 → 5.0.0-dev.20230218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-dev.20230216`;
26
+ var version = `${versionMajorMinor}.0-dev.20230218`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -8467,18 +8467,18 @@ function isIdentifierText(name, languageVersion, identifierVariant) {
8467
8467
  return true;
8468
8468
  }
8469
8469
  function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Standard */, textInitial, onError, start, length2) {
8470
- let text = textInitial;
8471
- let pos;
8472
- let end;
8473
- let startPos;
8474
- let tokenPos;
8475
- let token;
8476
- let tokenValue;
8477
- let tokenFlags;
8478
- let commentDirectives;
8479
- let inJSDocType = 0;
8470
+ var text = textInitial;
8471
+ var pos;
8472
+ var end;
8473
+ var startPos;
8474
+ var tokenPos;
8475
+ var token;
8476
+ var tokenValue;
8477
+ var tokenFlags;
8478
+ var commentDirectives;
8479
+ var inJSDocType = 0;
8480
8480
  setText(text, start, length2);
8481
- const scanner = {
8481
+ var scanner = {
8482
8482
  getStartPos: () => startPos,
8483
8483
  getTextPos: () => pos,
8484
8484
  getToken: () => token,
@@ -24988,7 +24988,7 @@ function canHaveIllegalDecorators(node) {
24988
24988
  }
24989
24989
  function canHaveIllegalModifiers(node) {
24990
24990
  const kind = node.kind;
24991
- return kind === 172 /* ClassStaticBlockDeclaration */ || kind === 299 /* PropertyAssignment */ || kind === 300 /* ShorthandPropertyAssignment */ || kind === 181 /* FunctionType */ || kind === 279 /* MissingDeclaration */ || kind === 267 /* NamespaceExportDeclaration */;
24991
+ return kind === 172 /* ClassStaticBlockDeclaration */ || kind === 299 /* PropertyAssignment */ || kind === 300 /* ShorthandPropertyAssignment */ || kind === 279 /* MissingDeclaration */ || kind === 267 /* NamespaceExportDeclaration */;
24992
24992
  }
24993
24993
  function isQuestionOrExclamationToken(node) {
24994
24994
  return isQuestionToken(node) || isExclamationToken(node);
@@ -26008,22 +26008,22 @@ function isExternalModule(file) {
26008
26008
  }
26009
26009
  var Parser;
26010
26010
  ((Parser2) => {
26011
- const scanner = createScanner(
26011
+ var scanner = createScanner(
26012
26012
  99 /* Latest */,
26013
26013
  /*skipTrivia*/
26014
26014
  true
26015
26015
  );
26016
- const disallowInAndDecoratorContext = 4096 /* DisallowInContext */ | 16384 /* DecoratorContext */;
26017
- let NodeConstructor2;
26018
- let TokenConstructor2;
26019
- let IdentifierConstructor2;
26020
- let PrivateIdentifierConstructor2;
26021
- let SourceFileConstructor2;
26016
+ var disallowInAndDecoratorContext = 4096 /* DisallowInContext */ | 16384 /* DecoratorContext */;
26017
+ var NodeConstructor2;
26018
+ var TokenConstructor2;
26019
+ var IdentifierConstructor2;
26020
+ var PrivateIdentifierConstructor2;
26021
+ var SourceFileConstructor2;
26022
26022
  function countNode(node) {
26023
26023
  nodeCount++;
26024
26024
  return node;
26025
26025
  }
26026
- const baseNodeFactory = {
26026
+ var baseNodeFactory = {
26027
26027
  createBaseSourceFileNode: (kind) => countNode(new SourceFileConstructor2(
26028
26028
  kind,
26029
26029
  /*pos*/
@@ -26060,25 +26060,25 @@ var Parser;
26060
26060
  0
26061
26061
  ))
26062
26062
  };
26063
- const factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
26064
- let fileName;
26065
- let sourceFlags;
26066
- let sourceText;
26067
- let languageVersion;
26068
- let scriptKind;
26069
- let languageVariant;
26070
- let parseDiagnostics;
26071
- let jsDocDiagnostics;
26072
- let syntaxCursor;
26073
- let currentToken;
26074
- let nodeCount;
26075
- let identifiers;
26076
- let identifierCount;
26077
- let parsingContext;
26078
- let notParenthesizedArrow;
26079
- let contextFlags;
26080
- let topLevel = true;
26081
- let parseErrorBeforeNextFinishedNode = false;
26063
+ var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
26064
+ var fileName;
26065
+ var sourceFlags;
26066
+ var sourceText;
26067
+ var languageVersion;
26068
+ var scriptKind;
26069
+ var languageVariant;
26070
+ var parseDiagnostics;
26071
+ var jsDocDiagnostics;
26072
+ var syntaxCursor;
26073
+ var currentToken;
26074
+ var nodeCount;
26075
+ var identifiers;
26076
+ var identifierCount;
26077
+ var parsingContext;
26078
+ var notParenthesizedArrow;
26079
+ var contextFlags;
26080
+ var topLevel = true;
26081
+ var parseErrorBeforeNextFinishedNode = false;
26082
26082
  function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride) {
26083
26083
  var _a2;
26084
26084
  scriptKind2 = ensureScriptKind(fileName2, scriptKind2);
@@ -28280,6 +28280,7 @@ var Parser;
28280
28280
  const hasJSDoc = hasPrecedingJSDocComment();
28281
28281
  const modifiers = parseModifiersForConstructorType();
28282
28282
  const isConstructorType = parseOptional(103 /* NewKeyword */);
28283
+ Debug.assert(!modifiers || isConstructorType, "Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");
28283
28284
  const typeParameters = parseTypeParameters();
28284
28285
  const parameters = parseParameters(4 /* Type */);
28285
28286
  const type = parseReturnType(
@@ -28288,8 +28289,6 @@ var Parser;
28288
28289
  false
28289
28290
  );
28290
28291
  const node = isConstructorType ? factory2.createConstructorTypeNode(modifiers, typeParameters, parameters, type) : factory2.createFunctionTypeNode(typeParameters, parameters, type);
28291
- if (!isConstructorType)
28292
- node.modifiers = modifiers;
28293
28292
  return withJSDoc(finishNode(node, pos), hasJSDoc);
28294
28293
  }
28295
28294
  function parseKeywordAndNoDot() {
@@ -29586,13 +29585,9 @@ var Parser;
29586
29585
  function parseJsxClosingFragment(inExpressionContext) {
29587
29586
  const pos = getNodePos();
29588
29587
  parseExpected(30 /* LessThanSlashToken */);
29589
- if (tokenIsIdentifierOrKeyword(token())) {
29590
- parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
29591
- }
29592
29588
  if (parseExpected(
29593
29589
  31 /* GreaterThanToken */,
29594
- /*diagnostic*/
29595
- void 0,
29590
+ Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment,
29596
29591
  /*shouldAdvance*/
29597
29592
  false
29598
29593
  )) {
@@ -42585,6 +42580,7 @@ function createTypeChecker(host) {
42585
42580
  let inlineLevel = 0;
42586
42581
  let currentNode;
42587
42582
  let varianceTypeParameter;
42583
+ let isInferencePartiallyBlocked = false;
42588
42584
  const emptySymbols = createSymbolTable();
42589
42585
  const arrayVariances = [1 /* Covariant */];
42590
42586
  const compilerOptions = host.getCompilerOptions();
@@ -43016,7 +43012,9 @@ function createTypeChecker(host) {
43016
43012
  toMarkSkip = toMarkSkip.parent;
43017
43013
  } while (toMarkSkip && toMarkSkip !== containingCall);
43018
43014
  }
43015
+ isInferencePartiallyBlocked = true;
43019
43016
  const result = runWithoutResolvedSignatureCaching(node, fn);
43017
+ isInferencePartiallyBlocked = false;
43020
43018
  if (containingCall) {
43021
43019
  let toMarkSkip = node;
43022
43020
  do {
@@ -47290,7 +47288,7 @@ function createTypeChecker(host) {
47290
47288
  return result;
47291
47289
  }
47292
47290
  function createAnonymousTypeNode(type2) {
47293
- var _a3;
47291
+ var _a3, _b2;
47294
47292
  const typeId = type2.id;
47295
47293
  const symbol = type2.symbol;
47296
47294
  if (symbol) {
@@ -47316,6 +47314,20 @@ function createTypeChecker(host) {
47316
47314
  return visitAndTransformType(type2, createTypeNodeFromObjectType);
47317
47315
  }
47318
47316
  } else {
47317
+ const isInstantiationExpressionType = !!(getObjectFlags(type2) & 8388608 /* InstantiationExpressionType */);
47318
+ if (isInstantiationExpressionType) {
47319
+ const instantiationExpressionType = type2;
47320
+ if (isTypeQueryNode(instantiationExpressionType.node)) {
47321
+ const typeNode = serializeExistingTypeNode(context, instantiationExpressionType.node);
47322
+ if (typeNode) {
47323
+ return typeNode;
47324
+ }
47325
+ }
47326
+ if ((_b2 = context.visitedTypes) == null ? void 0 : _b2.has(typeId)) {
47327
+ return createElidedInformationPlaceholder(context);
47328
+ }
47329
+ return visitAndTransformType(type2, createTypeNodeFromObjectType);
47330
+ }
47319
47331
  return createTypeNodeFromObjectType(type2);
47320
47332
  }
47321
47333
  function shouldWriteTypeOfFunctionSymbol() {
@@ -47824,7 +47836,7 @@ function createTypeChecker(host) {
47824
47836
  );
47825
47837
  }
47826
47838
  function signatureToSignatureDeclarationHelper(signature, kind, context, options) {
47827
- var _a2, _b, _c, _d;
47839
+ var _a2, _b, _c, _d, _e;
47828
47840
  const suppressAny = context.flags & 256 /* SuppressAnyReturnType */;
47829
47841
  if (suppressAny)
47830
47842
  context.flags &= ~256 /* SuppressAnyReturnType */;
@@ -47841,6 +47853,39 @@ function createTypeChecker(host) {
47841
47853
  /*skipUnionExpanding*/
47842
47854
  true
47843
47855
  )[0];
47856
+ let cleanup;
47857
+ if (context.enclosingDeclaration && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) && some(expandedParams)) {
47858
+ const existingFakeScope = getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration ? context.enclosingDeclaration : void 0;
47859
+ Debug.assertOptionalNode(existingFakeScope, isBlock);
47860
+ const locals = (_a2 = existingFakeScope == null ? void 0 : existingFakeScope.locals) != null ? _a2 : createSymbolTable();
47861
+ let newLocals;
47862
+ for (const param of expandedParams) {
47863
+ if (!locals.has(param.escapedName)) {
47864
+ newLocals = append(newLocals, param.escapedName);
47865
+ locals.set(param.escapedName, param);
47866
+ }
47867
+ }
47868
+ if (newLocals) {
47869
+ let removeNewLocals2 = function() {
47870
+ forEach(newLocals, (s) => locals.delete(s));
47871
+ };
47872
+ var removeNewLocals = removeNewLocals2;
47873
+ if (existingFakeScope) {
47874
+ cleanup = removeNewLocals2;
47875
+ } else {
47876
+ const fakeScope = parseNodeFactory.createBlock(emptyArray);
47877
+ getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = true;
47878
+ fakeScope.locals = locals;
47879
+ const saveEnclosingDeclaration = context.enclosingDeclaration;
47880
+ setParent(fakeScope, saveEnclosingDeclaration);
47881
+ context.enclosingDeclaration = fakeScope;
47882
+ cleanup = () => {
47883
+ context.enclosingDeclaration = saveEnclosingDeclaration;
47884
+ removeNewLocals2();
47885
+ };
47886
+ }
47887
+ }
47888
+ }
47844
47889
  const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 173 /* Constructor */, options == null ? void 0 : options.privateSymbolVisitor, options == null ? void 0 : options.bundledImports));
47845
47890
  const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);
47846
47891
  if (thisParameter) {
@@ -47866,11 +47911,11 @@ function createTypeChecker(host) {
47866
47911
  const flags = modifiersToFlags(modifiers);
47867
47912
  modifiers = factory.createModifiersFromModifierFlags(flags | 256 /* Abstract */);
47868
47913
  }
47869
- const node = kind === 176 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 177 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 170 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (_a2 = options == null ? void 0 : options.name) != null ? _a2 : factory.createIdentifier(""), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 171 /* MethodDeclaration */ ? factory.createMethodDeclaration(
47914
+ const node = kind === 176 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 177 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 170 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (_b = options == null ? void 0 : options.name) != null ? _b : factory.createIdentifier(""), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 171 /* MethodDeclaration */ ? factory.createMethodDeclaration(
47870
47915
  modifiers,
47871
47916
  /*asteriskToken*/
47872
47917
  void 0,
47873
- (_b = options == null ? void 0 : options.name) != null ? _b : factory.createIdentifier(""),
47918
+ (_c = options == null ? void 0 : options.name) != null ? _c : factory.createIdentifier(""),
47874
47919
  /*questionToken*/
47875
47920
  void 0,
47876
47921
  typeParameters,
@@ -47885,14 +47930,14 @@ function createTypeChecker(host) {
47885
47930
  void 0
47886
47931
  ) : kind === 174 /* GetAccessor */ ? factory.createGetAccessorDeclaration(
47887
47932
  modifiers,
47888
- (_c = options == null ? void 0 : options.name) != null ? _c : factory.createIdentifier(""),
47933
+ (_d = options == null ? void 0 : options.name) != null ? _d : factory.createIdentifier(""),
47889
47934
  parameters,
47890
47935
  returnTypeNode,
47891
47936
  /*body*/
47892
47937
  void 0
47893
47938
  ) : kind === 175 /* SetAccessor */ ? factory.createSetAccessorDeclaration(
47894
47939
  modifiers,
47895
- (_d = options == null ? void 0 : options.name) != null ? _d : factory.createIdentifier(""),
47940
+ (_e = options == null ? void 0 : options.name) != null ? _e : factory.createIdentifier(""),
47896
47941
  parameters,
47897
47942
  /*body*/
47898
47943
  void 0
@@ -47927,6 +47972,7 @@ function createTypeChecker(host) {
47927
47972
  if (typeArguments) {
47928
47973
  node.typeArguments = factory.createNodeArray(typeArguments);
47929
47974
  }
47975
+ cleanup == null ? void 0 : cleanup();
47930
47976
  return node;
47931
47977
  }
47932
47978
  function tryGetThisParameterDeclaration(signature, context) {
@@ -48541,9 +48587,12 @@ function createTypeChecker(host) {
48541
48587
  function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {
48542
48588
  return !(getObjectFlags(type) & 4 /* Reference */) || !isTypeReferenceNode(existing) || length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
48543
48589
  }
48590
+ function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {
48591
+ return getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration ? enclosingDeclaration.parent : enclosingDeclaration;
48592
+ }
48544
48593
  function serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled) {
48545
48594
  if (!isErrorType(type) && enclosingDeclaration) {
48546
- const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration);
48595
+ const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
48547
48596
  if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation) && !isGetAccessorDeclaration(declWithExistingAnnotation)) {
48548
48597
  const existing = getEffectiveTypeAnnotationNode(declWithExistingAnnotation);
48549
48598
  if (typeNodeIsEquivalentToType(existing, declWithExistingAnnotation, type) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
@@ -48575,7 +48624,8 @@ function createTypeChecker(host) {
48575
48624
  function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) {
48576
48625
  if (!isErrorType(type) && context.enclosingDeclaration) {
48577
48626
  const annotation = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);
48578
- if (!!findAncestor(annotation, (n) => n === context.enclosingDeclaration) && annotation) {
48627
+ const enclosingDeclarationIgnoringFakeScope = getEnclosingDeclarationIgnoringFakeScope(context.enclosingDeclaration);
48628
+ if (!!findAncestor(annotation, (n) => n === enclosingDeclarationIgnoringFakeScope) && annotation) {
48579
48629
  const annotated = getTypeFromTypeNode(annotation);
48580
48630
  const thisInstantiated = annotated.flags & 262144 /* TypeParameter */ && annotated.isThisType ? instantiateType(annotated, signature.mapper) : annotated;
48581
48631
  if (thisInstantiated === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(annotation, type)) {
@@ -53062,6 +53112,7 @@ function createTypeChecker(host) {
53062
53112
  const typeParameter = getTypeParameterFromMappedType(type);
53063
53113
  const constraintType = getConstraintTypeFromMappedType(type);
53064
53114
  const nameType = getNameTypeFromMappedType(type.target || type);
53115
+ const isFilteringMappedType = nameType && isTypeAssignableTo(nameType, typeParameter);
53065
53116
  const templateType = getTemplateTypeFromMappedType(type.target || type);
53066
53117
  const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));
53067
53118
  const templateModifiers = getMappedTypeModifiers(type);
@@ -53099,7 +53150,7 @@ function createTypeChecker(host) {
53099
53150
  prop.links.keyType = keyType;
53100
53151
  if (modifiersProp) {
53101
53152
  prop.links.syntheticOrigin = modifiersProp;
53102
- prop.declarations = nameType ? void 0 : modifiersProp.declarations;
53153
+ prop.declarations = !nameType || isFilteringMappedType ? modifiersProp.declarations : void 0;
53103
53154
  }
53104
53155
  members.set(propName, prop);
53105
53156
  }
@@ -61831,6 +61882,9 @@ function createTypeChecker(host) {
61831
61882
  const key = `B${getTypeId(type)}`;
61832
61883
  return (_a2 = getCachedType(key)) != null ? _a2 : setCachedType(key, mapType(type, getBaseTypeOfLiteralType));
61833
61884
  }
61885
+ function getBaseTypeOfLiteralTypeForComparison(type) {
61886
+ return type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & (256 /* NumberLiteral */ | 32 /* Enum */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type;
61887
+ }
61834
61888
  function getWidenedLiteralType(type) {
61835
61889
  return type.flags & 1056 /* EnumLike */ && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 128 /* StringLiteral */ && isFreshLiteralType(type) ? stringType : type.flags & 256 /* NumberLiteral */ && isFreshLiteralType(type) ? numberType : type.flags & 2048 /* BigIntLiteral */ && isFreshLiteralType(type) ? bigintType : type.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(type) ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedLiteralType) : type;
61836
61890
  }
@@ -69655,7 +69709,7 @@ function createTypeChecker(host) {
69655
69709
  const isTaggedTemplate = node.kind === 212 /* TaggedTemplateExpression */;
69656
69710
  const isDecorator2 = node.kind === 167 /* Decorator */;
69657
69711
  const isJsxOpeningOrSelfClosingElement = isJsxOpeningLikeElement(node);
69658
- const reportErrors2 = !candidatesOutArray;
69712
+ const reportErrors2 = !isInferencePartiallyBlocked && !candidatesOutArray;
69659
69713
  let typeArguments;
69660
69714
  if (!isDecorator2 && !isSuperCall(node)) {
69661
69715
  typeArguments = node.typeArguments;
@@ -72896,8 +72950,8 @@ function createTypeChecker(host) {
72896
72950
  case 32 /* LessThanEqualsToken */:
72897
72951
  case 33 /* GreaterThanEqualsToken */:
72898
72952
  if (checkForDisallowedESSymbolOperand(operator)) {
72899
- leftType = getBaseTypeOfLiteralType(checkNonNullType(leftType, left));
72900
- rightType = getBaseTypeOfLiteralType(checkNonNullType(rightType, right));
72953
+ leftType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(leftType, left));
72954
+ rightType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(rightType, right));
72901
72955
  reportOperatorErrorUnless((left2, right2) => {
72902
72956
  if (isTypeAny(left2) || isTypeAny(right2)) {
72903
72957
  return true;
@@ -74733,6 +74787,17 @@ function createTypeChecker(host) {
74733
74787
  lastSeenNonAmbientDeclaration = node;
74734
74788
  }
74735
74789
  }
74790
+ if (isInJSFile(current) && isFunctionLike(current) && current.jsDoc) {
74791
+ for (const node2 of current.jsDoc) {
74792
+ if (node2.tags) {
74793
+ for (const tag of node2.tags) {
74794
+ if (isJSDocOverloadTag(tag)) {
74795
+ hasOverloads = true;
74796
+ }
74797
+ }
74798
+ }
74799
+ }
74800
+ }
74736
74801
  }
74737
74802
  }
74738
74803
  if (multipleConstructorImplementation) {
@@ -74770,8 +74835,9 @@ function createTypeChecker(host) {
74770
74835
  const bodySignature = getSignatureFromDeclaration(bodyDeclaration);
74771
74836
  for (const signature of signatures) {
74772
74837
  if (!isImplementationCompatibleWithOverload(bodySignature, signature)) {
74838
+ const errorNode = signature.declaration && isJSDocSignature(signature.declaration) ? signature.declaration.parent.tagName : signature.declaration;
74773
74839
  addRelatedInfo(
74774
- error(signature.declaration, Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),
74840
+ error(errorNode, Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),
74775
74841
  createDiagnosticForNode(bodyDeclaration, Diagnostics.The_implementation_signature_is_declared_here)
74776
74842
  );
74777
74843
  break;
@@ -77804,20 +77870,19 @@ function createTypeChecker(host) {
77804
77870
  }
77805
77871
  }
77806
77872
  }
77807
- function getMemberOverrideModifierStatus(node, member) {
77873
+ function getMemberOverrideModifierStatus(node, member, memberSymbol) {
77808
77874
  if (!member.name) {
77809
77875
  return 0 /* Ok */;
77810
77876
  }
77811
- const symbol = getSymbolOfDeclaration(node);
77812
- const type = getDeclaredTypeOfSymbol(symbol);
77877
+ const classSymbol = getSymbolOfDeclaration(node);
77878
+ const type = getDeclaredTypeOfSymbol(classSymbol);
77813
77879
  const typeWithThis = getTypeWithThisArgument(type);
77814
- const staticType = getTypeOfSymbol(symbol);
77880
+ const staticType = getTypeOfSymbol(classSymbol);
77815
77881
  const baseTypeNode = getEffectiveBaseTypeNode(node);
77816
77882
  const baseTypes = baseTypeNode && getBaseTypes(type);
77817
77883
  const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;
77818
77884
  const baseStaticType = getBaseConstructorTypeOfClass(type);
77819
77885
  const memberHasOverrideModifier = member.parent ? hasOverrideModifier(member) : hasSyntacticModifier(member, 16384 /* Override */);
77820
- const memberName = unescapeLeadingUnderscores(getTextOfPropertyName(member.name));
77821
77886
  return checkMemberForOverrideModifier(
77822
77887
  node,
77823
77888
  staticType,
@@ -77830,7 +77895,7 @@ function createTypeChecker(host) {
77830
77895
  isStatic(member),
77831
77896
  /* memberIsParameterProperty */
77832
77897
  false,
77833
- memberName
77898
+ symbolName(memberSymbol)
77834
77899
  );
77835
77900
  }
77836
77901
  function getTargetSymbol(s) {
@@ -81387,7 +81452,6 @@ function createTypeChecker(host) {
81387
81452
  case 299 /* PropertyAssignment */:
81388
81453
  case 300 /* ShorthandPropertyAssignment */:
81389
81454
  case 267 /* NamespaceExportDeclaration */:
81390
- case 181 /* FunctionType */:
81391
81455
  case 279 /* MissingDeclaration */:
81392
81456
  return find(node.modifiers, isModifier);
81393
81457
  default:
@@ -87634,7 +87698,16 @@ function transformClassFields(context) {
87634
87698
  visitNode(node.initializer, (child) => namedEvaluationVisitor(child, referencedName), isExpression)
87635
87699
  );
87636
87700
  }
87637
- return visitEachChild(node, visitor, context);
87701
+ return factory2.updatePropertyDeclaration(
87702
+ node,
87703
+ visitNodes2(node.modifiers, modifierVisitor, isModifier),
87704
+ visitNode(node.name, propertyNameVisitor, isPropertyName),
87705
+ /*questionOrExclamationToken*/
87706
+ void 0,
87707
+ /*type*/
87708
+ void 0,
87709
+ visitNode(node.initializer, visitor, isExpression)
87710
+ );
87638
87711
  }
87639
87712
  function transformPublicFieldInitializer(node) {
87640
87713
  if (shouldTransformInitializers && !isAutoAccessorPropertyDeclaration(node)) {