@artel/artc 0.6.25238 → 0.6.25240

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.
Files changed (32) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +4 -2
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +55 -55
  5. package/build/{chunk-YPXECPGY.js → chunk-7PUGFDV6.js} +1 -1
  6. package/build/{chunk-S6SV63VD.js → chunk-TMFKLPML.js} +1272 -408
  7. package/build/{chunk-B2VADQOI.js → chunk-VCSRWNJI.js} +2 -2
  8. package/build/types/analysis/Analyzer.d.ts +19 -6
  9. package/build/types/analysis/DiagnosticCollector.d.ts +2 -1
  10. package/build/types/analysis/ModifierValidator.d.ts +2 -2
  11. package/build/types/analysis/TypeMemberImplementationChecker.d.ts +21 -0
  12. package/build/types/analysis/semantic-context/SemanticContextBasedEntityHidingMatcher.d.ts +9 -8
  13. package/build/types/common/SearchName.d.ts +1 -0
  14. package/build/types/diagnostic/DiagnosticCode.d.ts +23 -16
  15. package/build/types/emitter/Entities.d.ts +2 -0
  16. package/build/types/emitter/EntityMap.d.ts +2 -0
  17. package/build/types/entities/AliasTypeEntity.d.ts +2 -1
  18. package/build/types/entities/BaseEntityHidingMatcher.d.ts +11 -0
  19. package/build/types/entities/EntityHidingMatcherWithinTypeEntity.d.ts +10 -0
  20. package/build/types/entities/FunctionTypeEntity.d.ts +5 -3
  21. package/build/types/entities/PackageEntity.d.ts +3 -1
  22. package/build/types/entities/StructuredTypeEntity.d.ts +5 -3
  23. package/build/types/entities/TypeEntity.d.ts +2 -1
  24. package/build/types/entities/TypeExtensionEntity.d.ts +3 -1
  25. package/build/types/entities/TypeParameterEntity.d.ts +5 -2
  26. package/build/types/entities/VariantTypeEntity.d.ts +3 -1
  27. package/build/types/entities/index.d.ts +15 -3
  28. package/build/types/ts-interop/Entities.d.ts +15 -3
  29. package/build/types/ts-interop/TsInteropContext.d.ts +4 -2
  30. package/build/types/types/TypeMembers.d.ts +8 -1
  31. package/package.json +2 -2
  32. package/build/types/analysis/TypeMemberImplementationValidator.d.ts +0 -13
@@ -70,11 +70,11 @@ var __yieldStar = (value) => {
70
70
  };
71
71
 
72
72
  // source/common/PackageDialect.ts
73
- var PackageDialect = /* @__PURE__ */ ((PackageDialect8) => {
74
- PackageDialect8[PackageDialect8["ArtelAM"] = 0] = "ArtelAM";
75
- PackageDialect8[PackageDialect8["ArtelA"] = 1] = "ArtelA";
76
- PackageDialect8[PackageDialect8["ArtelM"] = 2] = "ArtelM";
77
- return PackageDialect8;
73
+ var PackageDialect = /* @__PURE__ */ ((PackageDialect12) => {
74
+ PackageDialect12[PackageDialect12["ArtelAM"] = 0] = "ArtelAM";
75
+ PackageDialect12[PackageDialect12["ArtelA"] = 1] = "ArtelA";
76
+ PackageDialect12[PackageDialect12["ArtelM"] = 2] = "ArtelM";
77
+ return PackageDialect12;
78
78
  })(PackageDialect || {});
79
79
 
80
80
  // source/common/PackageLocale.ts
@@ -620,7 +620,7 @@ var UniqueWithComparatorQuery = class extends Query {
620
620
  };
621
621
 
622
622
  // source/common/Constants.ts
623
- var ArtelVersion = true ? "0.6.25238" : "";
623
+ var ArtelVersion = true ? "0.6.25240" : "";
624
624
  var ArtelSourceFileExtensions = [".\u0430\u0440\u0442", ".\u0430\u0440\u0442\u0435\u043B\u044C", ".art", ".artel"];
625
625
  var ArtelSourceFileExtensionSet = new Set(ArtelSourceFileExtensions);
626
626
  var ArtelSourceAndConfigurationFileExtensionSet = new Set(ArtelSourceFileExtensionSet).add(".json");
@@ -3922,11 +3922,14 @@ var Result;
3922
3922
  })(Result || (Result = {}));
3923
3923
 
3924
3924
  // source/common/SearchName.ts
3925
- var SearchName = class {
3925
+ var SearchName = class _SearchName {
3926
3926
  constructor(value, isStrictlyOriginal) {
3927
3927
  this.value = value;
3928
3928
  this.isStrictlyOriginal = isStrictlyOriginal;
3929
3929
  }
3930
+ static fromName(name) {
3931
+ return new _SearchName(name, (name.flags & 2 /* OriginalName */) !== 0);
3932
+ }
3930
3933
  };
3931
3934
 
3932
3935
  // source/common/ThrottledCancellationToken.ts
@@ -12776,9 +12779,9 @@ var DiagnosticCode = /* @__PURE__ */ ((DiagnosticCode2) => {
12776
12779
  DiagnosticCode2[DiagnosticCode2["VariableMayNotHasBeenAssignedBeforeUsage"] = 310] = "VariableMayNotHasBeenAssignedBeforeUsage";
12777
12780
  DiagnosticCode2[DiagnosticCode2["NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned"] = 311] = "NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned";
12778
12781
  DiagnosticCode2[DiagnosticCode2["WriteFunctionHasNoCorrespondingReadFunction"] = 312] = "WriteFunctionHasNoCorrespondingReadFunction";
12779
- DiagnosticCode2[DiagnosticCode2["TypeCanNotHaveMultipleBaseObjectTypes"] = 313] = "TypeCanNotHaveMultipleBaseObjectTypes";
12780
- DiagnosticCode2[DiagnosticCode2["TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType"] = 314] = "TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType";
12781
- DiagnosticCode2[DiagnosticCode2["PlainObjectTypeCanNotBeUsedAsBaseType"] = 315] = "PlainObjectTypeCanNotBeUsedAsBaseType";
12782
+ DiagnosticCode2[DiagnosticCode2["TypeCannotHaveMultipleBaseObjectTypes"] = 313] = "TypeCannotHaveMultipleBaseObjectTypes";
12783
+ DiagnosticCode2[DiagnosticCode2["TypeThatIsNotMarkedAsBasicCannotBeUsedAsBaseType"] = 314] = "TypeThatIsNotMarkedAsBasicCannotBeUsedAsBaseType";
12784
+ DiagnosticCode2[DiagnosticCode2["PlainObjectTypeCannotBeUsedAsBaseType"] = 315] = "PlainObjectTypeCannotBeUsedAsBaseType";
12782
12785
  DiagnosticCode2[DiagnosticCode2["ThisTypeIsAlreadyListedInBaseTypeList"] = 316] = "ThisTypeIsAlreadyListedInBaseTypeList";
12783
12786
  DiagnosticCode2[DiagnosticCode2["OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes"] = 317] = "OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes";
12784
12787
  DiagnosticCode2[DiagnosticCode2["PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes"] = 318] = "PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes";
@@ -12786,34 +12789,41 @@ var DiagnosticCode = /* @__PURE__ */ ((DiagnosticCode2) => {
12786
12789
  DiagnosticCode2[DiagnosticCode2["ModifierListAlreadyContains0Modifier"] = 320] = "ModifierListAlreadyContains0Modifier";
12787
12790
  DiagnosticCode2[DiagnosticCode2["ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier"] = 321] = "ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier";
12788
12791
  DiagnosticCode2[DiagnosticCode2["_0ModifierIsNotAllowedHere"] = 322] = "_0ModifierIsNotAllowedHere";
12789
- DiagnosticCode2[DiagnosticCode2["DeclarationCanNotBePlacedInGroupHaving0Modifier"] = 323] = "DeclarationCanNotBePlacedInGroupHaving0Modifier";
12790
- DiagnosticCode2[DiagnosticCode2["PackageConstructorDeclarationCanNotHaveModifiers"] = 324] = "PackageConstructorDeclarationCanNotHaveModifiers";
12791
- DiagnosticCode2[DiagnosticCode2["PackageEntryPointDeclarationCanNotHaveModifiers"] = 325] = "PackageEntryPointDeclarationCanNotHaveModifiers";
12792
- DiagnosticCode2[DiagnosticCode2["TranslationsCanNotHaveModifiers"] = 326] = "TranslationsCanNotHaveModifiers";
12792
+ DiagnosticCode2[DiagnosticCode2["DeclarationCannotBePlacedInGroupHaving0Modifier"] = 323] = "DeclarationCannotBePlacedInGroupHaving0Modifier";
12793
+ DiagnosticCode2[DiagnosticCode2["PackageConstructorDeclarationCannotHaveModifiers"] = 324] = "PackageConstructorDeclarationCannotHaveModifiers";
12794
+ DiagnosticCode2[DiagnosticCode2["PackageEntryPointDeclarationCannotHaveModifiers"] = 325] = "PackageEntryPointDeclarationCannotHaveModifiers";
12795
+ DiagnosticCode2[DiagnosticCode2["TranslationsCannotHaveModifiers"] = 326] = "TranslationsCannotHaveModifiers";
12793
12796
  DiagnosticCode2[DiagnosticCode2["AbstractModifierCanOnlyBeUsedInAbstractObjectTypes"] = 327] = "AbstractModifierCanOnlyBeUsedInAbstractObjectTypes";
12794
12797
  DiagnosticCode2[DiagnosticCode2["BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases"] = 328] = "BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases";
12795
12798
  DiagnosticCode2[DiagnosticCode2["OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes"] = 329] = "OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes";
12796
- DiagnosticCode2[DiagnosticCode2["_0ModifierCanNotBeUsedWith1Modifier"] = 330] = "_0ModifierCanNotBeUsedWith1Modifier";
12797
- DiagnosticCode2[DiagnosticCode2["VariantDeclarationCanNotHaveHiddenModifier"] = 331] = "VariantDeclarationCanNotHaveHiddenModifier";
12799
+ DiagnosticCode2[DiagnosticCode2["_0ModifierCannotBeUsedWith1Modifier"] = 330] = "_0ModifierCannotBeUsedWith1Modifier";
12800
+ DiagnosticCode2[DiagnosticCode2["VariantDeclarationCannotHaveHiddenModifier"] = 331] = "VariantDeclarationCannotHaveHiddenModifier";
12798
12801
  DiagnosticCode2[DiagnosticCode2["BasicModifierCanOnlyBeAppliedToObjectTypes"] = 332] = "BasicModifierCanOnlyBeAppliedToObjectTypes";
12799
12802
  DiagnosticCode2[DiagnosticCode2["AbstractModifierCanOnlyBeAppliedToObjectTypes"] = 333] = "AbstractModifierCanOnlyBeAppliedToObjectTypes";
12800
- DiagnosticCode2[DiagnosticCode2["NotBasicObjectTypesCanNotHaveBasicMembers"] = 334] = "NotBasicObjectTypesCanNotHaveBasicMembers";
12801
- DiagnosticCode2[DiagnosticCode2["BasicModifierCanNotBeAppliedToAspectTypeFields"] = 335] = "BasicModifierCanNotBeAppliedToAspectTypeFields";
12803
+ DiagnosticCode2[DiagnosticCode2["NotBasicObjectTypesCannotHaveBasicMembers"] = 334] = "NotBasicObjectTypesCannotHaveBasicMembers";
12804
+ DiagnosticCode2[DiagnosticCode2["BasicModifierCannotBeAppliedToAspectTypeFields"] = 335] = "BasicModifierCannotBeAppliedToAspectTypeFields";
12802
12805
  DiagnosticCode2[DiagnosticCode2["WriteFunctionMustHaveTheSameModifiersAsReadFunction"] = 336] = "WriteFunctionMustHaveTheSameModifiersAsReadFunction";
12803
12806
  DiagnosticCode2[DiagnosticCode2["WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction"] = 337] = "WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction";
12804
12807
  DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0"] = 338] = "DeclarationConflictsWithBaseTypeMember0";
12805
12808
  DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0AddOverrideModifier"] = 339] = "DeclarationConflictsWithBaseTypeMember0AddOverrideModifier";
12806
- DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden"] = 340] = "DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden";
12809
+ DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden"] = 340] = "DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden";
12807
12810
  DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1"] = 341] = "DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1";
12808
12811
  DiagnosticCode2[DiagnosticCode2["DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1"] = 342] = "DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1";
12809
12812
  DiagnosticCode2[DiagnosticCode2["OverridingMemberMustHaveTheSameHidingLevelAsBaseMember0"] = 343] = "OverridingMemberMustHaveTheSameHidingLevelAsBaseMember0";
12810
12813
  DiagnosticCode2[DiagnosticCode2["OverridingMethodMustBeAsyncBecauseBaseMethod0IsAsync"] = 344] = "OverridingMethodMustBeAsyncBecauseBaseMethod0IsAsync";
12811
12814
  DiagnosticCode2[DiagnosticCode2["OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync"] = 345] = "OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync";
12812
12815
  DiagnosticCode2[DiagnosticCode2["OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0"] = 346] = "OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0";
12813
- DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0"] = 347] = "TypeDoesNotImplementMember0";
12814
- DiagnosticCode2[DiagnosticCode2["CanNotAccessAbstractMemberOfBaseType"] = 348] = "CanNotAccessAbstractMemberOfBaseType";
12815
- DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictAndMustBeOverridden0"] = 349] = "TheFollowingBaseTypeMembersConflictAndMustBeOverridden0";
12816
- DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1"] = 350] = "TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1";
12816
+ DiagnosticCode2[DiagnosticCode2["OverridingMemberMustHaveWriteFunctionToMatchBaseMember0"] = 347] = "OverridingMemberMustHaveWriteFunctionToMatchBaseMember0";
12817
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0"] = 348] = "TypeDoesNotImplementMember0";
12818
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0ImplicitImplementationTypeMismatch1"] = 349] = "TypeDoesNotImplementMember0ImplicitImplementationTypeMismatch1";
12819
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0ImplicitImplementation1IsAsync"] = 350] = "TypeDoesNotImplementMember0ImplicitImplementation1IsAsync";
12820
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0ImplicitImplementation1IsNotAsync"] = 351] = "TypeDoesNotImplementMember0ImplicitImplementation1IsNotAsync";
12821
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable"] = 352] = "TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable";
12822
+ DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden"] = 353] = "TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden";
12823
+ DiagnosticCode2[DiagnosticCode2["CannotAccessAbstractMemberOfBaseType"] = 354] = "CannotAccessAbstractMemberOfBaseType";
12824
+ DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictAndMustBeOverridden0"] = 355] = "TheFollowingBaseTypeMembersConflictAndMustBeOverridden0";
12825
+ DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1"] = 356] = "TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1";
12826
+ DiagnosticCode2[DiagnosticCode2["OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations"] = 357] = "OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations";
12817
12827
  DiagnosticCode2[DiagnosticCode2["CannotFindTsLibDirectoryBaseSearchPaths0"] = 401] = "CannotFindTsLibDirectoryBaseSearchPaths0";
12818
12828
  DiagnosticCode2[DiagnosticCode2["SourceFile0IsNotPartOfThePackageAndWontBeLoaded"] = 402] = "SourceFile0IsNotPartOfThePackageAndWontBeLoaded";
12819
12829
  DiagnosticCode2[DiagnosticCode2["ProgramWithoutMainPackageCannotBeCompiled"] = 403] = "ProgramWithoutMainPackageCannotBeCompiled";
@@ -12934,7 +12944,7 @@ var englishErrorMessages = {
12934
12944
  [235 /* TypeExpected */]: "Type expected.",
12935
12945
  [236 /* NameOfTypeOrPackageNotFound */]: "Name of type or package not found.",
12936
12946
  [237 /* TypeIsNotATag */]: "Type is not a tag.",
12937
- [238 /* ExpressionOfType0CannotBeUsedForEnumeration */]: "Expression of type '{0}' can not be used for enumeration.",
12947
+ [238 /* ExpressionOfType0CannotBeUsedForEnumeration */]: "Expression of type '{0}' cannot be used for enumeration.",
12938
12948
  [239 /* Operator0IsNotDefinedForTypes1And2 */]: "Operator '{0}' is not defined for types '{1}' and '{2}'.",
12939
12949
  [240 /* Operator0IsNotDefinedForType1 */]: "Operator '{0}' is not defined for type '{1}'.",
12940
12950
  [241 /* VariantMustHaveAssociatedValue */]: "Variant must have associated value.",
@@ -12955,14 +12965,14 @@ var englishErrorMessages = {
12955
12965
  [255 /* AbstractFieldsMustNotHaveInitializers */]: "Abstract fields must not have initializers.",
12956
12966
  [256 /* PackageIsAlreadyImportedInAnotherLanguage */]: "Package is already imported in another language.",
12957
12967
  [257 /* OnlySubprogramsWithReturnTypeCanReturnValue */]: "Only functions with a return type can return a value.",
12958
- [258 /* FunctionsUsingYieldStatementCannotReturnValue */]: "Methods using yield statement can not return a value.",
12959
- [259 /* YieldStatementCannotBeUsedInAnonymousFunctions */]: "Yield statement can not be used in anonymous functions.",
12960
- [260 /* YieldStatementCannotBeUsedHere */]: "Yield statement can not be used here.",
12968
+ [258 /* FunctionsUsingYieldStatementCannotReturnValue */]: "Methods using yield statement cannot return a value.",
12969
+ [259 /* YieldStatementCannotBeUsedInAnonymousFunctions */]: "Yield statement cannot be used in anonymous functions.",
12970
+ [260 /* YieldStatementCannotBeUsedHere */]: "Yield statement cannot be used here.",
12961
12971
  [261 /* FunctionsUsingYieldStatementMustHaveEnumerableAsReturnType */]: "Function using 'yield' statement must have 'Enumerable' as a return type.",
12962
- [262 /* YieldStatementCannotBeUsedInTryStatementThatHasCatchClause */]: "Yield statement can not be used in 'try' statement that has 'catch' clause.",
12963
- [263 /* YieldStatementCannotBeUsedInFinallyClause */]: "Yield statement can not be used in 'finally' clause.",
12972
+ [262 /* YieldStatementCannotBeUsedInTryStatementThatHasCatchClause */]: "Yield statement cannot be used in 'try' statement that has 'catch' clause.",
12973
+ [263 /* YieldStatementCannotBeUsedInFinallyClause */]: "Yield statement cannot be used in 'finally' clause.",
12964
12974
  [264 /* SubprogramMustReturnValue */]: "Function must return a value.",
12965
- [265 /* ResultVariableCannotBeUsedInFunctionsUsingYieldStatement */]: "'result' variable can not be used in functions using 'yield' statement.",
12975
+ [265 /* ResultVariableCannotBeUsedInFunctionsUsingYieldStatement */]: "'result' variable cannot be used in functions using 'yield' statement.",
12966
12976
  [266 /* TypeAliasReferencesItself */]: "Type alias references itself.",
12967
12977
  [267 /* TypeParameterHasCircularConstraint */]: "Type parameter has circular constraint.",
12968
12978
  [268 /* BaseTypeCausesInheritanceCycle */]: "Base type causes inheritance cycle.",
@@ -13010,9 +13020,9 @@ var englishErrorMessages = {
13010
13020
  [310 /* VariableMayNotHasBeenAssignedBeforeUsage */]: "Variable may not has been assigned before usage.",
13011
13021
  [311 /* NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned */]: "Not all code paths return a value and 'result' local variable may not has been assigned.",
13012
13022
  [312 /* WriteFunctionHasNoCorrespondingReadFunction */]: "Write function has no corresponding read function.",
13013
- [313 /* TypeCanNotHaveMultipleBaseObjectTypes */]: "Type can not have multiple base object types.",
13014
- [314 /* TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType */]: "Type that is not marked as 'basic' can not be used as base type.",
13015
- [315 /* PlainObjectTypeCanNotBeUsedAsBaseType */]: "Plain object type can not be used as base type.",
13023
+ [313 /* TypeCannotHaveMultipleBaseObjectTypes */]: "Type cannot have multiple base object types.",
13024
+ [314 /* TypeThatIsNotMarkedAsBasicCannotBeUsedAsBaseType */]: "Type that is not marked as 'basic' cannot be used as base type.",
13025
+ [315 /* PlainObjectTypeCannotBeUsedAsBaseType */]: "Plain object type cannot be used as base type.",
13016
13026
  [316 /* ThisTypeIsAlreadyListedInBaseTypeList */]: "This type is already listed in base type list.",
13017
13027
  [317 /* OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes */]: "Only object and aspect types can be used as base types.",
13018
13028
  [318 /* PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes */]: "Plain object type can have only aspects as base types.",
@@ -13020,37 +13030,44 @@ var englishErrorMessages = {
13020
13030
  [320 /* ModifierListAlreadyContains0Modifier */]: "Modifier list already contains '{0}' modifier.",
13021
13031
  [321 /* ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier */]: "Modifier list of outer declaration group already contains '{0}' modifier.",
13022
13032
  [322 /* _0ModifierIsNotAllowedHere */]: "'{0}' modifier is not allowed here.",
13023
- [323 /* DeclarationCanNotBePlacedInGroupHaving0Modifier */]: "Declaration can not be placed in group having '{0}' modifier.",
13024
- [324 /* PackageConstructorDeclarationCanNotHaveModifiers */]: "Package constructor declaration can not have own modifiers or be placed in group with modifiers.",
13025
- [325 /* PackageEntryPointDeclarationCanNotHaveModifiers */]: "Package entry point declaration can not have own modifiers or be placed in group with modifiers.",
13026
- [326 /* TranslationsCanNotHaveModifiers */]: "Translations can not have own modifiers or be placed in group with modifiers.",
13033
+ [323 /* DeclarationCannotBePlacedInGroupHaving0Modifier */]: "Declaration cannot be placed in group having '{0}' modifier.",
13034
+ [324 /* PackageConstructorDeclarationCannotHaveModifiers */]: "Package constructor declaration cannot have own modifiers or be placed in group with modifiers.",
13035
+ [325 /* PackageEntryPointDeclarationCannotHaveModifiers */]: "Package entry point declaration cannot have own modifiers or be placed in group with modifiers.",
13036
+ [326 /* TranslationsCannotHaveModifiers */]: "Translations cannot have own modifiers or be placed in group with modifiers.",
13027
13037
  [327 /* AbstractModifierCanOnlyBeUsedInAbstractObjectTypes */]: "'abstract' modifier can only be used in aspects and abstract object types.",
13028
13038
  [328 /* BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases */]: "'basic' modifier can only be used in object types, aspect types and type aliases.",
13029
13039
  [329 /* OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes */]: "'override' modifier can only be used in object and aspect types.",
13030
- [330 /* _0ModifierCanNotBeUsedWith1Modifier */]: "'{0}' modifier can not be used with '{1}' modifier.",
13031
- [331 /* VariantDeclarationCanNotHaveHiddenModifier */]: "Variant declaration can 'not' have hidden modifier.",
13040
+ [330 /* _0ModifierCannotBeUsedWith1Modifier */]: "'{0}' modifier cannot be used with '{1}' modifier.",
13041
+ [331 /* VariantDeclarationCannotHaveHiddenModifier */]: "Variant declaration can 'not' have hidden modifier.",
13032
13042
  [332 /* BasicModifierCanOnlyBeAppliedToObjectTypes */]: "'basic' modifier can only be applied to object types.",
13033
13043
  [333 /* AbstractModifierCanOnlyBeAppliedToObjectTypes */]: "'abstract' modifier can only be applied to object types.",
13034
- [334 /* NotBasicObjectTypesCanNotHaveBasicMembers */]: "Not 'basic' object types can not have 'basic' members.",
13035
- [335 /* BasicModifierCanNotBeAppliedToAspectTypeFields */]: "Basic modifier can not be applied to aspect type fields.",
13044
+ [334 /* NotBasicObjectTypesCannotHaveBasicMembers */]: "Not 'basic' object types cannot have 'basic' members.",
13045
+ [335 /* BasicModifierCannotBeAppliedToAspectTypeFields */]: "Basic modifier cannot be applied to aspect type fields.",
13036
13046
  [336 /* WriteFunctionMustHaveTheSameModifiersAsReadFunction */]: "Write function must have the same modifiers as read function.",
13037
13047
  [337 /* WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction */]: "Write function must have the same or more restrictive hiding level then read function.",
13038
13048
  [338 /* DeclarationConflictsWithBaseTypeMember0 */]: "Declaration conflicts with base type member '{0}'.",
13039
13049
  [339 /* DeclarationConflictsWithBaseTypeMember0AddOverrideModifier */]: "Declaration conflicts with base type member '{0}'. To override base member, add 'override' modifier.",
13040
- [340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden */]: "Declaration conflicts with base type member '{0}'. This member can not be overridden.",
13050
+ [340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden */]: "Declaration conflicts with base type member '{0}'. This member cannot be overridden.",
13041
13051
  [341 /* DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1 */]: "Declaration conflicts with base type member '{0}'. To override it, it's type must be assignable to '{1}'.",
13042
13052
  [342 /* DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1 */]: "Declaration conflicts with base type member '{0}'. To override it, it's return type must be assignable to '{1}'.",
13043
13053
  [343 /* OverridingMemberMustHaveTheSameHidingLevelAsBaseMember0 */]: "Overriding member must have the same hiding level as base member '{0}'.",
13044
13054
  [344 /* OverridingMethodMustBeAsyncBecauseBaseMethod0IsAsync */]: "Overriding method must be 'async' because base method '{0}' is 'async'.",
13045
13055
  [345 /* OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync */]: "Overriding method must not be 'async' because base method '{0}' is not 'async'.",
13046
- [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "Overriding field must not be 'const' or have write function to match base field '{0}'",
13047
- [347 /* TypeDoesNotImplementMember0 */]: "Type does not implement member '{0}'.",
13048
- [348 /* CanNotAccessAbstractMemberOfBaseType */]: "Can not access abstract member of base type.",
13049
- [349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "The following base type members conflict and must be overridden:{0}",
13050
- [350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "The following base type members conflict because they have the same original name '{0}' and must be overridden:{1}",
13056
+ [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "Overriding field must not be 'const' or have write function to match base field '{0}'.",
13057
+ [347 /* OverridingMemberMustHaveWriteFunctionToMatchBaseMember0 */]: "Overriding member must have write function to match base member '{0}'.",
13058
+ [348 /* TypeDoesNotImplementMember0 */]: "Type does not implement member '{0}'.",
13059
+ [349 /* TypeDoesNotImplementMember0ImplicitImplementationTypeMismatch1 */]: "Type does not implement member '{0}'. Member '{1}' cannot implement it because their types does not match.",
13060
+ [350 /* TypeDoesNotImplementMember0ImplicitImplementation1IsAsync */]: "Type does not implement member '{0}'. Method '{1}' cannot implement it because it is 'async'.",
13061
+ [351 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotAsync */]: "Type does not implement member '{0}'. Method '{1}' cannot implement it because it is not 'async'.",
13062
+ [352 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable */]: "Type does not implement member '{0}'. Member '{1}' cannot implement it because it does not have write function or marked 'const'.",
13063
+ [353 /* TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden */]: "Type does not implement member '{0}'. Member '{1}' cannot implement it because its write function is hidden.",
13064
+ [354 /* CannotAccessAbstractMemberOfBaseType */]: "Can not access abstract member of base type.",
13065
+ [355 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "The following base type members conflict and must be overridden:{0}",
13066
+ [356 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "The following base type members conflict because they have the same original name '{0}' and must be overridden:{1}",
13067
+ [357 /* OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations */]: "Only identifier or integer literal is allowed as parameter of text template literal in translations.",
13051
13068
  [401 /* CannotFindTsLibDirectoryBaseSearchPaths0 */]: "Can not find directory with TypeScript library. Base search paths: {0}.",
13052
13069
  [402 /* SourceFile0IsNotPartOfThePackageAndWontBeLoaded */]: "Source file '{0}' is not part of the package and won't be loaded.",
13053
- [403 /* ProgramWithoutMainPackageCannotBeCompiled */]: "Program without main package can not be compiled.",
13070
+ [403 /* ProgramWithoutMainPackageCannotBeCompiled */]: "Program without main package cannot be compiled.",
13054
13071
  [404 /* ErrorsInJsonConfigurationFile */]: "Errors in JSON configuration file.",
13055
13072
  [405 /* StandardPackage0NotFound */]: "Standard package '{0}' not found.",
13056
13073
  [406 /* Declaration0NotFoundInStandardPackage1 */]: "Declaration '{0}' not found in standard package '{1}'."
@@ -13206,9 +13223,9 @@ var russianErrorMessages = {
13206
13223
  [310 /* VariableMayNotHasBeenAssignedBeforeUsage */]: "\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043C\u043E\u0433\u043B\u043E \u0431\u044B\u0442\u044C \u043D\u0435 \u043F\u0440\u0438\u0441\u0432\u043E\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F.",
13207
13224
  [311 /* NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned */]: "\u0424\u0443\u043D\u043A\u0446\u0438\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u043E \u0432\u0441\u0435\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445 \u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 '\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442' \u043C\u043E\u0433\u043B\u043E \u0431\u044B\u0442\u044C \u043D\u0435 \u043F\u0440\u0438\u0441\u0432\u043E\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435.",
13208
13225
  [312 /* WriteFunctionHasNoCorrespondingReadFunction */]: "\u0424\u0443\u043D\u043A\u0446\u0438\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435 \u0438\u043C\u0435\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F.",
13209
- [313 /* TypeCanNotHaveMultipleBaseObjectTypes */]: "\u0422\u0438\u043F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0432.",
13210
- [314 /* TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType */]: "\u0422\u0438\u043F, \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0431\u0430\u0437\u043E\u0432\u044B\u0439', \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13211
- [315 /* PlainObjectTypeCanNotBeUsedAsBaseType */]: "\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13226
+ [313 /* TypeCannotHaveMultipleBaseObjectTypes */]: "\u0422\u0438\u043F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0432.",
13227
+ [314 /* TypeThatIsNotMarkedAsBasicCannotBeUsedAsBaseType */]: "\u0422\u0438\u043F, \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0431\u0430\u0437\u043E\u0432\u044B\u0439', \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13228
+ [315 /* PlainObjectTypeCannotBeUsedAsBaseType */]: "\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13212
13229
  [316 /* ThisTypeIsAlreadyListedInBaseTypeList */]: "\u0422\u0438\u043F \u0443\u0436\u0435 \u0443\u043A\u0430\u0437\u0430\u043D \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432.",
13213
13230
  [317 /* OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes */]: "\u0422\u043E\u043B\u044C\u043A\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0435 \u0438 \u0430\u0441\u043F\u0435\u043A\u0442\u043D\u044B\u0435 \u0442\u0438\u043F\u044B \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u044B \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u044B\u0445.",
13214
13231
  [318 /* PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes */]: "\u0412 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0443\u043A\u0430\u0437\u0430\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0441\u043F\u0435\u043A\u0442\u044B.",
@@ -13216,34 +13233,41 @@ var russianErrorMessages = {
13216
13233
  [320 /* ModifierListAlreadyContains0Modifier */]: "\u0421\u043F\u0438\u0441\u043E\u043A \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0443\u0436\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}'.",
13217
13234
  [321 /* ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier */]: "\u0421\u043F\u0438\u0441\u043E\u043A \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0432\u043D\u0435\u0448\u043D\u0435\u0439 \u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0439 \u0443\u0436\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}'.",
13218
13235
  [322 /* _0ModifierIsNotAllowedHere */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}' \u0437\u0434\u0435\u0441\u044C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C.",
13219
- [323 /* DeclarationCanNotBePlacedInGroupHaving0Modifier */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}'.",
13220
- [324 /* PackageConstructorDeclarationCanNotHaveModifiers */]: "\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440 \u043F\u0430\u043A\u0435\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13221
- [325 /* PackageEntryPointDeclarationCanNotHaveModifiers */]: "\u0411\u043B\u043E\u043A '\u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13222
- [326 /* TranslationsCanNotHaveModifiers */]: "\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13236
+ [323 /* DeclarationCannotBePlacedInGroupHaving0Modifier */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}'.",
13237
+ [324 /* PackageConstructorDeclarationCannotHaveModifiers */]: "\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440 \u043F\u0430\u043A\u0435\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13238
+ [325 /* PackageEntryPointDeclarationCannotHaveModifiers */]: "\u0411\u043B\u043E\u043A '\u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13239
+ [326 /* TranslationsCannotHaveModifiers */]: "\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0438\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0442\u044C\u0441\u044F \u0432 \u0433\u0440\u0443\u043F\u043F\u0435, \u0438\u043C\u0435\u044E\u0449\u0435\u0439 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B.",
13223
13240
  [327 /* AbstractModifierCanOnlyBeUsedInAbstractObjectTypes */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u0430\u044F' \u043C\u043E\u0436\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0430\u0441\u043F\u0435\u043A\u0442\u0430\u0445 \u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u0430\u0445.",
13224
13241
  [328 /* BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0431\u0430\u0437\u043E\u0432\u0430\u044F' \u043C\u043E\u0436\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u0430\u0445, \u0430\u0441\u043F\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u0430\u0445 \u0438 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u0430\u0445 \u0442\u0438\u043F\u0430.",
13225
13242
  [329 /* OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u0430\u044F' \u043C\u043E\u0436\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u0445 \u0438 \u0430\u0441\u043F\u0435\u043A\u0442\u043D\u044B\u0445 \u0442\u0438\u043F\u0430\u0445.",
13226
- [330 /* _0ModifierCanNotBeUsedWith1Modifier */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u043E \u0441 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '{1}'.",
13227
- [331 /* VariantDeclarationCanNotHaveHiddenModifier */]: "\u0412\u0430\u0440\u0438\u0430\u043D\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0441\u043A\u0440\u044B\u0442\u043E'.",
13243
+ [330 /* _0ModifierCannotBeUsedWith1Modifier */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '{0}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u043E \u0441 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '{1}'.",
13244
+ [331 /* VariantDeclarationCannotHaveHiddenModifier */]: "\u0412\u0430\u0440\u0438\u0430\u043D\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0441\u043A\u0440\u044B\u0442\u043E'.",
13228
13245
  [332 /* BasicModifierCanOnlyBeAppliedToObjectTypes */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0431\u0430\u0437\u043E\u0432\u044B\u0439' \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u043C \u0442\u0438\u043F\u0430\u043C.",
13229
13246
  [333 /* AbstractModifierCanOnlyBeAppliedToObjectTypes */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0439' \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u044B\u043C \u0442\u0438\u043F\u0430\u043C.",
13230
- [334 /* NotBasicObjectTypesCanNotHaveBasicMembers */]: "\u0427\u043B\u0435\u043D\u044B \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430, \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0431\u0430\u0437\u043E\u0432\u044B\u0439', \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u044B\u043C\u0438.",
13231
- [335 /* BasicModifierCanNotBeAppliedToAspectTypeFields */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0431\u0430\u0437\u043E\u0432\u044B\u0439' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u043A \u043F\u043E\u043B\u044F\u043C \u0430\u0441\u043F\u0435\u043A\u0442\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13247
+ [334 /* NotBasicObjectTypesCannotHaveBasicMembers */]: "\u0427\u043B\u0435\u043D\u044B \u043E\u0431\u044A\u0435\u043A\u0442\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430, \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0431\u0430\u0437\u043E\u0432\u044B\u0439', \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u044B\u043C\u0438.",
13248
+ [335 /* BasicModifierCannotBeAppliedToAspectTypeFields */]: "\u041C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0431\u0430\u0437\u043E\u0432\u044B\u0439' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u043A \u043F\u043E\u043B\u044F\u043C \u0430\u0441\u043F\u0435\u043A\u0442\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13232
13249
  [336 /* WriteFunctionMustHaveTheSameModifiersAsReadFunction */]: "\u0424\u0443\u043D\u043A\u0446\u0438\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0434\u043E\u043B\u0436\u043D\u0430 \u0438\u043C\u0435\u0442\u044C \u0442\u0430\u043A\u0438\u0435 \u0436\u0435 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B, \u043A\u0430\u043A \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0447\u0442\u0435\u043D\u0438\u044F.",
13233
13250
  [337 /* WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction */]: "\u0424\u0443\u043D\u043A\u0446\u0438\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0434\u043E\u043B\u0436\u043D\u0430 \u0438\u043C\u0435\u0442\u044C \u0442\u0430\u043A\u043E\u0439 \u0436\u0435 \u0438\u043B\u0438 \u0431\u043E\u043B\u0435\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0441\u043A\u0440\u044B\u0442\u043D\u043E\u0441\u0442\u0438, \u0447\u0435\u043C \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0447\u0442\u0435\u043D\u0438\u044F.",
13234
13251
  [338 /* DeclarationConflictsWithBaseTypeMember0 */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13235
13252
  [339 /* DeclarationConflictsWithBaseTypeMember0AddOverrideModifier */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0427\u0442\u043E\u0431\u044B \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u044B\u0439 \u0447\u043B\u0435\u043D, \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 '\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u0430\u044F'.",
13236
- [340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u042D\u0442\u043E\u0442 \u0447\u043B\u0435\u043D \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D.",
13253
+ [340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u042D\u0442\u043E\u0442 \u0447\u043B\u0435\u043D \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D.",
13237
13254
  [341 /* DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1 */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0427\u0442\u043E\u0431\u044B \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0435\u0433\u043E, \u0442\u0438\u043F \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u0441 \u0442\u0438\u043F\u043E\u043C '{1}'.",
13238
13255
  [342 /* DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1 */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u0447\u043B\u0435\u043D\u043E\u043C '{0}' \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0427\u0442\u043E\u0431\u044B \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0435\u0433\u043E, \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043C\u044B\u0439 \u0442\u0438\u043F \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u0441 \u0442\u0438\u043F\u043E\u043C '{1}'.",
13239
- [347 /* TypeDoesNotImplementMember0 */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'.",
13256
+ [348 /* TypeDoesNotImplementMember0 */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'.",
13257
+ [349 /* TypeDoesNotImplementMember0ImplicitImplementationTypeMismatch1 */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'. \u0427\u043B\u0435\u043D '{1}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0438\u0445 \u0442\u0438\u043F\u044B \u043E\u0442\u043B\u0438\u0447\u0430\u044E\u0442\u0441\u044F.",
13258
+ [350 /* TypeDoesNotImplementMember0ImplicitImplementation1IsAsync */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'. \u041C\u0435\u0442\u043E\u0434 '{1}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0432 \u043E\u0442\u043B\u0438\u0447\u0438\u0435 \u043E\u0442 \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u0433\u043E \u0447\u043B\u0435\u043D\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u043C.",
13259
+ [351 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotAsync */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'. \u041C\u0435\u0442\u043E\u0434 '{1}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0432 \u043E\u0442\u043B\u0438\u0447\u0438\u0435 \u043E\u0442 \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u0433\u043E \u0447\u043B\u0435\u043D\u0430 \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u043C.",
13260
+ [352 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'. \u0427\u043B\u0435\u043D '{1}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u043D\u0435 \u0438\u043C\u0435\u0435\u0442 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0437\u0430\u043F\u0438\u0441\u0438 \u0438\u043B\u0438 \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u043A\u043E\u043D\u0441\u0442'.",
13261
+ [353 /* TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden */]: "\u0422\u0438\u043F \u043D\u0435 \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442 \u0447\u043B\u0435\u043D '{0}'. \u0427\u043B\u0435\u043D '{1}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0435\u0433\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0441\u043A\u0440\u044B\u0442\u0430.",
13240
13262
  [343 /* OverridingMemberMustHaveTheSameHidingLevelAsBaseMember0 */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u0447\u043B\u0435\u043D \u0442\u0438\u043F\u0430 \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u043C\u0435\u0442\u044C \u0442\u0430\u043A\u043E\u0439 \u0436\u0435 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0441\u043A\u0440\u044B\u0442\u043D\u043E\u0441\u0442\u0438 \u043A\u0430\u043A \u0431\u0430\u0437\u043E\u0432\u044B\u0439 \u0447\u043B\u0435\u043D '{0}'.",
13241
13263
  [344 /* OverridingMethodMustBeAsyncBecauseBaseMethod0IsAsync */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0439', \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0431\u0430\u0437\u043E\u0432\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 '{0}' \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u0442\u0430\u043A\u0438\u043C \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C.",
13242
13264
  [345 /* OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0439', \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0431\u0430\u0437\u043E\u0432\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 '{0}' \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u0442\u0430\u043A\u0438\u043C \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C.",
13243
- [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043B\u0435 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u043A\u043E\u043D\u0441\u0442' \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E \u0438\u043C\u0435\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0437\u0430\u043F\u0438\u0441\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u043E\u043C\u0443 \u043F\u043E\u043B\u044E '{0}'.",
13244
- [348 /* CanNotAccessAbstractMemberOfBaseType */]: "\u041D\u0435\u043B\u044C\u0437\u044F \u043E\u0431\u0440\u0430\u0442\u0438\u0442\u044C\u0441\u044F \u043A \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u043C\u0443 \u0447\u043B\u0435\u043D\u0443 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13245
- [349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439 \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{0}",
13246
- [350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439, \u043F\u043E\u0442\u043E\u043C\u0443 \u0447\u0442\u043E \u0438\u0445 \u0438\u043C\u0435\u043D\u0430 '{0}' \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442 \u043D\u0430 \u044F\u0437\u044B\u043A\u0435 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u0430, \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{1}",
13265
+ [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043B\u0435 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u043A\u043E\u043D\u0441\u0442' \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E \u0438\u043C\u0435\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0437\u0430\u043F\u0438\u0441\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u043E\u043C\u0443 \u043F\u043E\u043B\u044E '{0}'.",
13266
+ [347 /* OverridingMemberMustHaveWriteFunctionToMatchBaseMember0 */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u0447\u043B\u0435\u043D \u0442\u0438\u043F\u0430 \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u043C\u0435\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0437\u0430\u043F\u0438\u0441\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u043E\u043C\u0443 \u0447\u043B\u0435\u043D\u0443 '{0}'.",
13267
+ [354 /* CannotAccessAbstractMemberOfBaseType */]: "\u041D\u0435\u043B\u044C\u0437\u044F \u043E\u0431\u0440\u0430\u0442\u0438\u0442\u044C\u0441\u044F \u043A \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u043C\u0443 \u0447\u043B\u0435\u043D\u0443 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13268
+ [355 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439 \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{0}",
13269
+ [356 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439, \u043F\u043E\u0442\u043E\u043C\u0443 \u0447\u0442\u043E \u0438\u0445 \u0438\u043C\u0435\u043D\u0430 '{0}' \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442 \u043D\u0430 \u044F\u0437\u044B\u043A\u0435 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u0430, \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{1}",
13270
+ [357 /* OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations */]: "\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u043C \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u0445 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0438\u043C\u044F \u0438\u043B\u0438 \u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0446\u0435\u043B\u043E\u0435 \u0447\u0438\u0441\u043B\u043E.",
13247
13271
  [401 /* CannotFindTsLibDirectoryBaseSearchPaths0 */]: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u043F\u0430\u043F\u043A\u0443 \u0441\u043E \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0439 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u043E\u0439 TypeScript. \u041F\u0443\u0442\u0438, \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u043B\u0441\u044F \u043F\u043E\u0438\u0441\u043A: {0}.",
13248
13272
  [402 /* SourceFile0IsNotPartOfThePackageAndWontBeLoaded */]: "\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u0444\u0430\u0439\u043B '{0}' \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0447\u0430\u0441\u0442\u044C\u044E \u043F\u0430\u043A\u0435\u0442\u0430 \u0438 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D.",
13249
13273
  [403 /* ProgramWithoutMainPackageCannotBeCompiled */]: "\u041F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0431\u0435\u0437 \u0433\u043B\u0430\u0432\u043D\u043E\u0433\u043E \u043F\u0430\u043A\u0435\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0441\u043A\u043E\u043C\u043F\u0438\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0430.",
@@ -13252,65 +13276,6 @@ var russianErrorMessages = {
13252
13276
  [406 /* Declaration0NotFoundInStandardPackage1 */]: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 '{0}' \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0432 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u043C \u043F\u0430\u043A\u0435\u0442\u0435 '{1}'."
13253
13277
  };
13254
13278
 
13255
- // source/analysis/Localization.ts
13256
- var Localization;
13257
- ((Localization2) => {
13258
- class Original {
13259
- constructor(locale) {
13260
- this.locale = locale;
13261
- this.kind = "original";
13262
- }
13263
- equals(other) {
13264
- return this.kind === other.kind && this.locale === other.locale;
13265
- }
13266
- static ofEntity(entity) {
13267
- const locale = getPackageContainingEntity(entity).getLocale();
13268
- return new Localization2.Original(locale);
13269
- }
13270
- }
13271
- Localization2.Original = Original;
13272
- class Translated {
13273
- constructor(translation) {
13274
- this.translation = translation;
13275
- this.kind = "translated";
13276
- }
13277
- get locale() {
13278
- return this.translation.translationPackage.getTranslationLocale();
13279
- }
13280
- equals(other) {
13281
- return this.kind === other.kind && this.translation.equals(other.translation);
13282
- }
13283
- }
13284
- Localization2.Translated = Translated;
13285
- })(Localization || (Localization = {}));
13286
- var Translation = class {
13287
- constructor(translationPackage) {
13288
- this.translationPackage = translationPackage;
13289
- }
13290
- equals(other) {
13291
- return this.translationPackage === other.translationPackage;
13292
- }
13293
- };
13294
- var LocalizedName;
13295
- ((LocalizedName2) => {
13296
- class Original {
13297
- constructor(value, localization) {
13298
- this.value = value;
13299
- this.localization = localization;
13300
- this.kind = "original";
13301
- }
13302
- }
13303
- LocalizedName2.Original = Original;
13304
- class Translated {
13305
- constructor(value, localization) {
13306
- this.value = value;
13307
- this.localization = localization;
13308
- this.kind = "translated";
13309
- }
13310
- }
13311
- LocalizedName2.Translated = Translated;
13312
- })(LocalizedName || (LocalizedName = {}));
13313
-
13314
13279
  // source/analysis/AnalyzedTranslationPackage.ts
13315
13280
  var AnalyzedTranslationPackage = class {
13316
13281
  constructor(_analyzer, _package, _translatedPackage) {
@@ -14442,7 +14407,8 @@ var EntityLocalizationHelper = class {
14442
14407
  typeEntity2.isAsync(),
14443
14408
  typeEntity2.getSubstitutionApplicationMode(),
14444
14409
  typeEntity2.getContainingPackage(),
14445
- typeEntity2.isHidden()
14410
+ typeEntity2.isHidden(),
14411
+ typeEntity2.getContext()
14446
14412
  );
14447
14413
  const typeParameters = Query.from(typeEntity2.getTypeParameters()).zip(
14448
14414
  localizedSignature2.getTypeParameterNames(),
@@ -14450,7 +14416,8 @@ var EntityLocalizationHelper = class {
14450
14416
  n.value,
14451
14417
  p.getConstraint().cycleFree,
14452
14418
  p.getDefaultType(),
14453
- localizedTypeEntity.unfinishedValue
14419
+ localizedTypeEntity.unfinishedValue,
14420
+ p.getContext()
14454
14421
  )
14455
14422
  ).toArray();
14456
14423
  const valueParameters = Query.from(typeEntity2.getValueParameters()).zip(
@@ -14473,7 +14440,8 @@ var EntityLocalizationHelper = class {
14473
14440
  typeEntity2.isAsync(),
14474
14441
  typeEntity2.getSubstitutionApplicationMode(),
14475
14442
  typeEntity2.getContainingPackage(),
14476
- typeEntity2.isHidden()
14443
+ typeEntity2.isHidden(),
14444
+ typeEntity2.getContext()
14477
14445
  );
14478
14446
  const typeParameters = Query.from(typeEntity2.getTypeParameters()).zip(
14479
14447
  localizedSignature2.getTypeParameterNames(),
@@ -14481,7 +14449,8 @@ var EntityLocalizationHelper = class {
14481
14449
  n.value,
14482
14450
  p.getConstraint().cycleFree,
14483
14451
  p.getDefaultType(),
14484
- localizedTypeEntity.unfinishedValue
14452
+ localizedTypeEntity.unfinishedValue,
14453
+ p.getContext()
14485
14454
  )
14486
14455
  ).toArray();
14487
14456
  const valueParameters = Query.from(typeEntity2.getValueParameters()).zip(
@@ -17424,6 +17393,7 @@ var Method = class _Method {
17424
17393
  isAsync,
17425
17394
  0 /* SubstituteOwnSubstitutions */,
17426
17395
  containingPackage,
17396
+ void 0,
17427
17397
  void 0
17428
17398
  );
17429
17399
  const valueParameters = this.getValueParameters().map(
@@ -17451,6 +17421,9 @@ var Method = class _Method {
17451
17421
  isStatic() {
17452
17422
  return this._entity.isStatic();
17453
17423
  }
17424
+ isOverride() {
17425
+ return this._entity.isOverride();
17426
+ }
17454
17427
  applySubstitutions(substitutions) {
17455
17428
  return new _Method(this._analyzer, this._entity, this._substitutions.substituteTypes(substitutions.map));
17456
17429
  }
@@ -17521,6 +17494,9 @@ var Field = class _Field {
17521
17494
  isStatic() {
17522
17495
  return this._entity.isStatic();
17523
17496
  }
17497
+ isOverride() {
17498
+ return this._entity.isOverride();
17499
+ }
17524
17500
  isVariant() {
17525
17501
  return this._entity.isVariant();
17526
17502
  }
@@ -17578,6 +17554,7 @@ var Operator = class _Operator {
17578
17554
  isAsync,
17579
17555
  0 /* SubstituteOwnSubstitutions */,
17580
17556
  containingPackage,
17557
+ void 0,
17581
17558
  void 0
17582
17559
  );
17583
17560
  const valueParameters = this.getValueParameters().map(
@@ -17602,6 +17579,9 @@ var Operator = class _Operator {
17602
17579
  isStatic() {
17603
17580
  return this._entity.isStatic();
17604
17581
  }
17582
+ isOverride() {
17583
+ return this._entity.isOverride();
17584
+ }
17605
17585
  applySubstitutions(substitutions) {
17606
17586
  return new _Operator(this._analyzer, this._entity, this._substitutions.substituteTypes(substitutions.map));
17607
17587
  }
@@ -17613,7 +17593,8 @@ var Operator = class _Operator {
17613
17593
  }
17614
17594
  };
17615
17595
  var Constructor = class _Constructor {
17616
- constructor(_entity, _substitutions) {
17596
+ constructor(_analyzer, _entity, _substitutions) {
17597
+ this._analyzer = _analyzer;
17617
17598
  this._entity = _entity;
17618
17599
  this._substitutions = _substitutions;
17619
17600
  this.kind = "constructor";
@@ -17640,7 +17621,15 @@ var Constructor = class _Constructor {
17640
17621
  return false;
17641
17622
  }
17642
17623
  applySubstitutions(substitutions) {
17643
- return new _Constructor(this._entity, this._substitutions.substituteTypes(substitutions.map));
17624
+ return new _Constructor(this._analyzer, this._entity, this._substitutions.substituteTypes(substitutions.map));
17625
+ }
17626
+ getConstructedType() {
17627
+ const container = this._entity.getContainer();
17628
+ const constructedTypeEntity = container.getContextualType();
17629
+ if (constructedTypeEntity !== void 0) {
17630
+ return this._analyzer.instantiateType(constructedTypeEntity, this._substitutions);
17631
+ }
17632
+ return this._analyzer.standardTypes.unresolved;
17644
17633
  }
17645
17634
  equals(other) {
17646
17635
  if (this === other) {
@@ -17722,6 +17711,9 @@ var Indexer = class _Indexer {
17722
17711
  isStatic() {
17723
17712
  return this._entity.isStatic();
17724
17713
  }
17714
+ isOverride() {
17715
+ return this._entity.isOverride();
17716
+ }
17725
17717
  applySubstitutions(substitutions) {
17726
17718
  return new _Indexer(this._entity, this._substitutions.substituteTypes(substitutions.map));
17727
17719
  }
@@ -17759,6 +17751,9 @@ var DereferenceOperator = class _DereferenceOperator {
17759
17751
  isStatic() {
17760
17752
  return false;
17761
17753
  }
17754
+ isOverride() {
17755
+ return this._entity.isOverride();
17756
+ }
17762
17757
  applySubstitutions(substitutions) {
17763
17758
  return new _DereferenceOperator(this._entity, this._substitutions.substituteTypes(substitutions.map));
17764
17759
  }
@@ -17961,6 +17956,89 @@ var TypeEntityKind = /* @__PURE__ */ ((TypeEntityKind4) => {
17961
17956
  return TypeEntityKind4;
17962
17957
  })(TypeEntityKind || {});
17963
17958
 
17959
+ // source/entities/BaseEntityHidingMatcher.ts
17960
+ var BaseEntityHidingMatcher = class {
17961
+ matches(hiding) {
17962
+ switch (hiding.kind) {
17963
+ case "type":
17964
+ return this.typeEntity === hiding.typeEntity;
17965
+ case "type-hierarchy": {
17966
+ if (this.typeEntity === void 0) {
17967
+ return false;
17968
+ }
17969
+ if (this.typeEntity === hiding.baseTypeEntity) {
17970
+ return true;
17971
+ }
17972
+ const baseTypes = this.collectBaseTypesRecursively(this.typeEntity);
17973
+ return baseTypes.has(hiding.baseTypeEntity);
17974
+ }
17975
+ case "file":
17976
+ return this.sourceFile === hiding.sourceFile;
17977
+ case "package":
17978
+ return this.package === hiding.packageEntity;
17979
+ default:
17980
+ Debug.never(hiding);
17981
+ }
17982
+ }
17983
+ collectBaseTypesRecursively(entity, result) {
17984
+ result ??= /* @__PURE__ */ new Set();
17985
+ switch (entity.typeEntityKind) {
17986
+ case 1 /* Structured */: {
17987
+ const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
17988
+ if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
17989
+ result.add(baseObjectType);
17990
+ this.collectBaseTypesRecursively(baseObjectType, result);
17991
+ }
17992
+ for (const baseAspectType of entity.getBaseAspectTypes().cycleFree) {
17993
+ const aspectTypeEntity = unaliasType(baseAspectType).getEntity();
17994
+ if (aspectTypeEntity !== void 0 && !result.has(aspectTypeEntity)) {
17995
+ result.add(aspectTypeEntity);
17996
+ this.collectBaseTypesRecursively(aspectTypeEntity, result);
17997
+ }
17998
+ }
17999
+ break;
18000
+ }
18001
+ case 3 /* Variant */: {
18002
+ const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
18003
+ if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
18004
+ result.add(baseObjectType);
18005
+ this.collectBaseTypesRecursively(baseObjectType, result);
18006
+ }
18007
+ break;
18008
+ }
18009
+ case 0 /* Function */: {
18010
+ const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
18011
+ if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
18012
+ result.add(baseObjectType);
18013
+ this.collectBaseTypesRecursively(baseObjectType, result);
18014
+ }
18015
+ break;
18016
+ }
18017
+ case 2 /* Parameter */:
18018
+ case 4 /* Alias */:
18019
+ break;
18020
+ default:
18021
+ Debug.never(entity);
18022
+ }
18023
+ return result;
18024
+ }
18025
+ };
18026
+
18027
+ // source/entities/EntityHidingMatcherWithinTypeEntity.ts
18028
+ var EntityHidingMatcherWithinTypeEntity = class extends BaseEntityHidingMatcher {
18029
+ constructor(_typeEntity) {
18030
+ super();
18031
+ this._typeEntity = _typeEntity;
18032
+ this.sourceFile = void 0;
18033
+ }
18034
+ get typeEntity() {
18035
+ return this.typeEntity;
18036
+ }
18037
+ get package() {
18038
+ return getPackageContainingEntity(this._typeEntity);
18039
+ }
18040
+ };
18041
+
17964
18042
  // source/entities/PackageMembers.ts
17965
18043
  var OriginalPackageMembers = class {
17966
18044
  constructor(_namedMembers, _typeExtensions) {
@@ -18036,7 +18114,7 @@ var Compilation = class {
18036
18114
  };
18037
18115
 
18038
18116
  // source/project/CompilationLoader.ts
18039
- import { atomicRun } from "reactronic";
18117
+ import { runAtomically } from "reactronic";
18040
18118
 
18041
18119
  // source/diagnostic/RangeDiagnostic.ts
18042
18120
  var RangeDiagnostic = class {
@@ -19916,7 +19994,7 @@ var FileSystemTree_exports = {};
19916
19994
  __export(FileSystemTree_exports, {
19917
19995
  FileSystemTree: () => FileSystemTree
19918
19996
  });
19919
- import { TriggeringObject, ReactiveSystem, trigger, atomicBlock } from "reactronic";
19997
+ import { TriggeringObject, ReactiveSystem, trigger, atomic } from "reactronic";
19920
19998
  var FileSystemTree = class extends TriggeringObject {
19921
19999
  constructor(handleInconsistentRequestsWithoutErrors = false, deleteEmptyDirectories = false) {
19922
20000
  super();
@@ -20136,19 +20214,19 @@ __decorateClass([
20136
20214
  trigger(false)
20137
20215
  ], FileSystemTree.prototype, "_rootsByScheme", 2);
20138
20216
  __decorateClass([
20139
- atomicBlock
20217
+ atomic
20140
20218
  ], FileSystemTree.prototype, "addFile", 1);
20141
20219
  __decorateClass([
20142
- atomicBlock
20220
+ atomic
20143
20221
  ], FileSystemTree.prototype, "addDirectory", 1);
20144
20222
  __decorateClass([
20145
- atomicBlock
20223
+ atomic
20146
20224
  ], FileSystemTree.prototype, "deleteFileOrDirectory", 1);
20147
20225
  __decorateClass([
20148
- atomicBlock
20226
+ atomic
20149
20227
  ], FileSystemTree.prototype, "updateFile", 1);
20150
20228
  __decorateClass([
20151
- atomicBlock
20229
+ atomic
20152
20230
  ], FileSystemTree.prototype, "addOrUpdateFile", 1);
20153
20231
  var DirectoryInternal = class extends TriggeringObject {
20154
20232
  constructor(uri, name, parent) {
@@ -20223,10 +20301,10 @@ __decorateClass([
20223
20301
  trigger(false)
20224
20302
  ], DirectoryInternal.prototype, "_childByName", 2);
20225
20303
  __decorateClass([
20226
- atomicBlock
20304
+ atomic
20227
20305
  ], DirectoryInternal.prototype, "addChild", 1);
20228
20306
  __decorateClass([
20229
- atomicBlock
20307
+ atomic
20230
20308
  ], DirectoryInternal.prototype, "deleteChild", 1);
20231
20309
  var FileInternal = class extends TriggeringObject {
20232
20310
  constructor(uri, name, text, parent) {
@@ -20283,7 +20361,7 @@ __decorateClass([
20283
20361
  trigger(false)
20284
20362
  ], FileInternal.prototype, "_isDisposed", 2);
20285
20363
  __decorateClass([
20286
- atomicBlock
20364
+ atomic
20287
20365
  ], FileInternal.prototype, "update", 1);
20288
20366
 
20289
20367
  // source/diagnostic/TokenDiagnostic.ts
@@ -21731,7 +21809,7 @@ var ExpressionParser = class {
21731
21809
  let result = this.parseMultiplicativeExpression(isFollowedByStatementBlock);
21732
21810
  while (this.isAdditiveOperator(this.parser.currentTokenOrKeyword)) {
21733
21811
  const operator = this.parser.parseTokenOrKeyword();
21734
- const right = this.parseAdditiveExpression(isFollowedByStatementBlock);
21812
+ const right = this.parseMultiplicativeExpression(isFollowedByStatementBlock);
21735
21813
  result = new BinaryExpression2(result, operator.value, right);
21736
21814
  result = this.parser.intern(result, expressionStart);
21737
21815
  }
@@ -21771,7 +21849,7 @@ var ExpressionParser = class {
21771
21849
  let result = this.parseBitwiseConjunctiveExpression(isFollowedByStatementBlock);
21772
21850
  while (this.isBitwiseDisjunctiveOperator(this.parser.currentTokenOrKeyword)) {
21773
21851
  const operator = this.parser.parseTokenOrKeyword();
21774
- const right = this.parseBitwiseDisjunctiveExpression(isFollowedByStatementBlock);
21852
+ const right = this.parseBitwiseConjunctiveExpression(isFollowedByStatementBlock);
21775
21853
  result = new BinaryExpression2(result, operator.value, right);
21776
21854
  result = this.parser.intern(result, expressionStart);
21777
21855
  }
@@ -24065,10 +24143,10 @@ var CompilationLoader = class _CompilationLoader {
24065
24143
  }
24066
24144
  static loadUsingSourcesProvider(uri, sourcesProvider, options, diagnostics, workspaceUri, namesOfDirectoriesToIgnore, cancellationToken) {
24067
24145
  return __async(this, null, function* () {
24068
- const fileSystemTree = atomicRun(() => new FileSystemTree());
24146
+ const fileSystemTree = runAtomically(() => new FileSystemTree());
24069
24147
  const namesOfDirectoriesToIgnoreSet = new Set(namesOfDirectoriesToIgnore ?? DefaultNamesOfDirectoriesToIgnore);
24070
24148
  PerformanceMeasurement.markStart(3 /* IO */);
24071
- const rootDirectory = yield atomicRun(() => _CompilationLoader.loadArtelFiles(
24149
+ const rootDirectory = yield runAtomically(() => _CompilationLoader.loadArtelFiles(
24072
24150
  uri,
24073
24151
  sourcesProvider,
24074
24152
  fileSystemTree,
@@ -25982,7 +26060,7 @@ var ConstructorLookup = class {
25982
26060
  const translatedMembers = this._localizationContext?.getTranslatedTypeOrExtensionEntityMembers(entity);
25983
26061
  const originalLocale = getPackageContainingEntity(entity).getLocale();
25984
26062
  let result = entity.getMembers().getConstructors().map((c) => {
25985
- const member = new Constructor(c, type.getSubstitutions());
26063
+ const member = new Constructor(this._analyzer, c, type.getSubstitutions());
25986
26064
  if (translatedMembers !== void 0) {
25987
26065
  const translation = new Translation(translatedMembers.translationPackage);
25988
26066
  return FoundAnonymousDeclaration.translated(member, translation);
@@ -26003,7 +26081,7 @@ var ConstructorLookup = class {
26003
26081
  const originalLocale = getPackageContainingEntity(e).getLocale();
26004
26082
  return e.getMembers().getConstructors().map(
26005
26083
  (c) => FoundAnonymousDeclaration.original(
26006
- new Constructor(c, type.getSubstitutions()),
26084
+ new Constructor(this._analyzer, c, type.getSubstitutions()),
26007
26085
  originalLocale
26008
26086
  )
26009
26087
  );
@@ -26359,6 +26437,9 @@ var TsPackageEntity = class {
26359
26437
  getLocale() {
26360
26438
  return this._locale;
26361
26439
  }
26440
+ getDialect() {
26441
+ return DefaultDialect;
26442
+ }
26362
26443
  getMembers() {
26363
26444
  return this._contents.value.getMembers();
26364
26445
  }
@@ -26392,6 +26473,9 @@ var SourcePackageLoadedFromDtsEntity = class {
26392
26473
  getLocale() {
26393
26474
  return this._sourcePackage.configuration.locale;
26394
26475
  }
26476
+ getDialect() {
26477
+ return this._sourcePackage.configuration.dialect;
26478
+ }
26395
26479
  getMembers() {
26396
26480
  return this._contents.value.getMembers();
26397
26481
  }
@@ -26702,6 +26786,9 @@ var TsGlobalClassOrInterfaceEntity = class {
26702
26786
  getSubstitutionApplicationMode() {
26703
26787
  return 0 /* SubstituteOwnSubstitutions */;
26704
26788
  }
26789
+ getContext() {
26790
+ return this._tsctx.createTypeEntityContext(this);
26791
+ }
26705
26792
  getDeclaration() {
26706
26793
  return this._symbol.declarations?.find(TsUtils.isClassOrInterfaceDeclaration);
26707
26794
  }
@@ -26806,6 +26893,9 @@ var SourceAndTsGlobalClassOrInterfaceMergeEntity = class {
26806
26893
  getSubstitutionApplicationMode() {
26807
26894
  return this._sourceData.getSubstitutionApplicationMode();
26808
26895
  }
26896
+ getContext() {
26897
+ return this._tsctx.createTypeEntityContext(this);
26898
+ }
26809
26899
  };
26810
26900
  SourceAndTsGlobalClassOrInterfaceMergeEntity = __decorateClass([
26811
26901
  entityToStringDecorator
@@ -26882,6 +26972,9 @@ var TsTypeLiteralEntity = class {
26882
26972
  getContainingPackage() {
26883
26973
  return this._containingPackage;
26884
26974
  }
26975
+ getContext() {
26976
+ return this._tsctx.createTypeEntityContext(this);
26977
+ }
26885
26978
  };
26886
26979
  TsTypeLiteralEntity = __decorateClass([
26887
26980
  entityToStringDecorator
@@ -26975,6 +27068,9 @@ var TsNamedTypeLiteralEntity = class {
26975
27068
  getSubstitutionApplicationMode() {
26976
27069
  return 0 /* SubstituteOwnSubstitutions */;
26977
27070
  }
27071
+ getContext() {
27072
+ return this._tsctx.createTypeEntityContext(this);
27073
+ }
26978
27074
  };
26979
27075
  TsNamedTypeLiteralEntity = __decorateClass([
26980
27076
  entityToStringDecorator
@@ -27055,6 +27151,9 @@ var SourceAndTsNamedTypeLiteralMergeEntity = class {
27055
27151
  getSubstitutionApplicationMode() {
27056
27152
  return this._sourceData.getSubstitutionApplicationMode();
27057
27153
  }
27154
+ getContext() {
27155
+ return this._tsctx.createTypeEntityContext(this);
27156
+ }
27058
27157
  };
27059
27158
  SourceAndTsNamedTypeLiteralMergeEntity = __decorateClass([
27060
27159
  entityToStringDecorator
@@ -27659,6 +27758,9 @@ var TsTypeParameterEntity = class {
27659
27758
  getTags() {
27660
27759
  return [];
27661
27760
  }
27761
+ getContext() {
27762
+ return this._tsctx.createTypeEntityContext(this);
27763
+ }
27662
27764
  getDeclaration() {
27663
27765
  return this._symbol.declarations?.find(ts2.isTypeParameterDeclaration);
27664
27766
  }
@@ -27877,6 +27979,9 @@ var TsEnumEntity = class {
27877
27979
  getBaseObjectType() {
27878
27980
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._tsctx.analyzer.getImplicitBaseTypeForVariantType()));
27879
27981
  }
27982
+ getContext() {
27983
+ return this._tsctx.createTypeEntityContext(this);
27984
+ }
27880
27985
  };
27881
27986
  TsEnumEntity = __decorateClass([
27882
27987
  entityToStringDecorator
@@ -27996,6 +28101,9 @@ var TsTypeAliasEntity = class {
27996
28101
  getSubstitutionApplicationMode() {
27997
28102
  return 0 /* SubstituteOwnSubstitutions */;
27998
28103
  }
28104
+ getContext() {
28105
+ return this._tsctx.createTypeEntityContext(this);
28106
+ }
27999
28107
  getDeclaration() {
28000
28108
  return this._symbol.declarations?.find(ts2.isTypeAliasDeclaration);
28001
28109
  }
@@ -28065,6 +28173,9 @@ var TsAnonymousFunctionTypeEntity = class {
28065
28173
  getBaseObjectType() {
28066
28174
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._tsctx.analyzer.getImplicitBaseTypeForFunctionType()));
28067
28175
  }
28176
+ getContext() {
28177
+ return this._tsctx.createTypeEntityContext(this);
28178
+ }
28068
28179
  };
28069
28180
  TsAnonymousFunctionTypeEntity = __decorateClass([
28070
28181
  entityToStringDecorator
@@ -28148,6 +28259,9 @@ var TsNamedFunctionTypeEntity = class {
28148
28259
  getBaseObjectType() {
28149
28260
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._tsctx.analyzer.getImplicitBaseTypeForFunctionType()));
28150
28261
  }
28262
+ getContext() {
28263
+ return this._tsctx.createTypeEntityContext(this);
28264
+ }
28151
28265
  };
28152
28266
  TsNamedFunctionTypeEntity = __decorateClass([
28153
28267
  entityToStringDecorator
@@ -28617,7 +28731,7 @@ var ModifierValidator = class _ModifierValidator {
28617
28731
  modifier
28618
28732
  ));
28619
28733
  } else if ((flags & 64 /* Abstract */) !== 0) {
28620
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28734
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28621
28735
  modifier,
28622
28736
  this.findModifier(64 /* Abstract */)
28623
28737
  );
@@ -28635,7 +28749,7 @@ var ModifierValidator = class _ModifierValidator {
28635
28749
  modifier
28636
28750
  ));
28637
28751
  } else if ((flags & 128 /* Basic */) !== 0) {
28638
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28752
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28639
28753
  modifier,
28640
28754
  this.findModifier(128 /* Basic */)
28641
28755
  );
@@ -28648,7 +28762,7 @@ var ModifierValidator = class _ModifierValidator {
28648
28762
  if ((flags & flag) !== 0) {
28649
28763
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
28650
28764
  } else if (declarationKind === 2 /* MemberGroupDeclaration */ && (flags & 512 /* Async */) !== 0) {
28651
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28765
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28652
28766
  modifier,
28653
28767
  this.findModifier(512 /* Async */)
28654
28768
  );
@@ -28663,7 +28777,7 @@ var ModifierValidator = class _ModifierValidator {
28663
28777
  if ((flags & flag) !== 0) {
28664
28778
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
28665
28779
  } else if (declarationKind === 2 /* MemberGroupDeclaration */ && (flags & 1024 /* Const */) !== 0) {
28666
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28780
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28667
28781
  modifier,
28668
28782
  this.findModifier(1024 /* Const */)
28669
28783
  );
@@ -28691,7 +28805,7 @@ var ModifierValidator = class _ModifierValidator {
28691
28805
  presentNotAllowedFlags,
28692
28806
  (f) => {
28693
28807
  const modifier = this.findModifier(f);
28694
- this.reportDeclarationCanNotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier);
28808
+ this.reportDeclarationCannotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier);
28695
28809
  }
28696
28810
  );
28697
28811
  }
@@ -28701,7 +28815,7 @@ var ModifierValidator = class _ModifierValidator {
28701
28815
  if (firstModifier !== void 0 || parentGroupFlags !== 0 /* None */) {
28702
28816
  const nodeForDiagnostic = firstModifier ?? node.creationKeyword;
28703
28817
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28704
- 324 /* PackageConstructorDeclarationCanNotHaveModifiers */,
28818
+ 324 /* PackageConstructorDeclarationCannotHaveModifiers */,
28705
28819
  nodeForDiagnostic
28706
28820
  ));
28707
28821
  }
@@ -28711,7 +28825,7 @@ var ModifierValidator = class _ModifierValidator {
28711
28825
  if (firstModifier !== void 0 || parentGroupFlags !== 0 /* None */) {
28712
28826
  const nodeForDiagnostic = firstModifier ?? node.runKeyword;
28713
28827
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28714
- 325 /* PackageEntryPointDeclarationCanNotHaveModifiers */,
28828
+ 325 /* PackageEntryPointDeclarationCannotHaveModifiers */,
28715
28829
  nodeForDiagnostic
28716
28830
  ));
28717
28831
  }
@@ -28721,7 +28835,7 @@ var ModifierValidator = class _ModifierValidator {
28721
28835
  if (firstModifier !== void 0 || parentGroupFlags !== 0 /* None */) {
28722
28836
  const nodeForDiagnostic = firstModifier ?? node.translationsKeyword;
28723
28837
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28724
- 326 /* TranslationsCanNotHaveModifiers */,
28838
+ 326 /* TranslationsCannotHaveModifiers */,
28725
28839
  nodeForDiagnostic
28726
28840
  ));
28727
28841
  }
@@ -28852,16 +28966,16 @@ var ModifierValidator = class _ModifierValidator {
28852
28966
  this.reportDuplicateHiddenModifier(modifier, parentGroupFlags);
28853
28967
  } else if (typeMemberDeclarationKind === 142 /* VariantDeclaration */) {
28854
28968
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28855
- 331 /* VariantDeclarationCanNotHaveHiddenModifier */,
28969
+ 331 /* VariantDeclarationCannotHaveHiddenModifier */,
28856
28970
  modifier
28857
28971
  ));
28858
28972
  } else if ((flag & 3 /* HiddenInTypeOrWithoutLevel */) !== 0 && (flags & 64 /* Abstract */) !== 0) {
28859
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28973
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28860
28974
  modifier,
28861
28975
  this.findModifier(64 /* Abstract */)
28862
28976
  );
28863
28977
  } else if ((flag & 3 /* HiddenInTypeOrWithoutLevel */) !== 0 && (flags & 128 /* Basic */) !== 0) {
28864
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28978
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28865
28979
  modifier,
28866
28980
  this.findModifier(128 /* Basic */)
28867
28981
  );
@@ -28881,17 +28995,17 @@ var ModifierValidator = class _ModifierValidator {
28881
28995
  } else if (!this.typeMemberAllowsAbstractModifier(typeMemberDeclarationKind)) {
28882
28996
  this.reportModifierIsNotAllowedHere(modifier);
28883
28997
  } else if ((flags & 3 /* HiddenInTypeOrWithoutLevel */) !== 0) {
28884
- this.reportModifierCanNotBeUsedWithAnotherModifier(
28998
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28885
28999
  modifier,
28886
29000
  this.findModifier(3 /* HiddenInTypeOrWithoutLevel */)
28887
29001
  );
28888
29002
  } else if ((flags & 32 /* Static */) !== 0) {
28889
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29003
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28890
29004
  modifier,
28891
29005
  this.findModifier(32 /* Static */)
28892
29006
  );
28893
29007
  } else if ((flags & 128 /* Basic */) !== 0) {
28894
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29008
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28895
29009
  modifier,
28896
29010
  this.findModifier(128 /* Basic */)
28897
29011
  );
@@ -28912,26 +29026,26 @@ var ModifierValidator = class _ModifierValidator {
28912
29026
  this.reportModifierIsNotAllowedHere(modifier);
28913
29027
  } else if (typeMemberDeclarationKind === 52 /* FieldDeclaration */ && declarationWithMembersKind === 2 /* AspectType */) {
28914
29028
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28915
- 335 /* BasicModifierCanNotBeAppliedToAspectTypeFields */,
29029
+ 335 /* BasicModifierCannotBeAppliedToAspectTypeFields */,
28916
29030
  modifier
28917
29031
  ));
28918
29032
  } else if (declarationWithMembersKind === 0 /* ObjectType */ && !(isTypeMarkedAbstract || isTypeMarkedBasic)) {
28919
29033
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28920
- 334 /* NotBasicObjectTypesCanNotHaveBasicMembers */,
29034
+ 334 /* NotBasicObjectTypesCannotHaveBasicMembers */,
28921
29035
  modifier
28922
29036
  ));
28923
29037
  } else if ((flags & 3 /* HiddenInTypeOrWithoutLevel */) !== 0) {
28924
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29038
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28925
29039
  modifier,
28926
29040
  this.findModifier(3 /* HiddenInTypeOrWithoutLevel */)
28927
29041
  );
28928
29042
  } else if ((flags & 64 /* Abstract */) !== 0) {
28929
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29043
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28930
29044
  modifier,
28931
29045
  this.findModifier(64 /* Abstract */)
28932
29046
  );
28933
29047
  } else if ((flags & 32 /* Static */) !== 0) {
28934
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29048
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28935
29049
  modifier,
28936
29050
  this.findModifier(32 /* Static */)
28937
29051
  );
@@ -28951,7 +29065,7 @@ var ModifierValidator = class _ModifierValidator {
28951
29065
  } else if (!this.typeMemberAllowsOverrideModifier(typeMemberDeclarationKind)) {
28952
29066
  this.reportModifierIsNotAllowedHere(modifier);
28953
29067
  } else if ((flags & 32 /* Static */) !== 0) {
28954
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29068
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28955
29069
  modifier,
28956
29070
  this.findModifier(32 /* Static */)
28957
29071
  );
@@ -28966,17 +29080,17 @@ var ModifierValidator = class _ModifierValidator {
28966
29080
  } else if (!this.typeMemberAllowsStaticModifier(typeMemberDeclarationKind)) {
28967
29081
  this.reportModifierIsNotAllowedHere(modifier);
28968
29082
  } else if ((flags & 64 /* Abstract */) !== 0) {
28969
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29083
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28970
29084
  modifier,
28971
29085
  this.findModifier(64 /* Abstract */)
28972
29086
  );
28973
29087
  } else if ((flags & 128 /* Basic */) !== 0) {
28974
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29088
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28975
29089
  modifier,
28976
29090
  this.findModifier(128 /* Basic */)
28977
29091
  );
28978
29092
  } else if ((flags & 256 /* Override */) !== 0) {
28979
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29093
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28980
29094
  modifier,
28981
29095
  this.findModifier(256 /* Override */)
28982
29096
  );
@@ -28989,7 +29103,7 @@ var ModifierValidator = class _ModifierValidator {
28989
29103
  if ((flags & flag) !== 0) {
28990
29104
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
28991
29105
  } else if (typeMemberDeclarationKind === 42 /* TypeMemberGroupDeclaration */ && (flags & 512 /* Async */) !== 0) {
28992
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29106
+ this.reportModifierCannotBeUsedWithAnotherModifier(
28993
29107
  modifier,
28994
29108
  this.findModifier(512 /* Async */)
28995
29109
  );
@@ -29004,7 +29118,7 @@ var ModifierValidator = class _ModifierValidator {
29004
29118
  if ((flags & flag) !== 0) {
29005
29119
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
29006
29120
  } else if (typeMemberDeclarationKind === 42 /* TypeMemberGroupDeclaration */ && (flags & 1024 /* Const */) !== 0) {
29007
- this.reportModifierCanNotBeUsedWithAnotherModifier(
29121
+ this.reportModifierCannotBeUsedWithAnotherModifier(
29008
29122
  modifier,
29009
29123
  this.findModifier(1024 /* Const */)
29010
29124
  );
@@ -29028,7 +29142,7 @@ var ModifierValidator = class _ModifierValidator {
29028
29142
  presentNotAllowedFlags,
29029
29143
  (f) => {
29030
29144
  const modifier = this.findModifier(f);
29031
- this.reportDeclarationCanNotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier);
29145
+ this.reportDeclarationCannotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier);
29032
29146
  }
29033
29147
  );
29034
29148
  }
@@ -29037,7 +29151,7 @@ var ModifierValidator = class _ModifierValidator {
29037
29151
  this.validateTypeMemberCanBePlacedInGroupWithModifiers(node.kind, node.name, parentGroupFlags);
29038
29152
  if ((parentGroupFlags & 128 /* Basic */) !== 0 && declarationWithMembersKind === 2 /* AspectType */) {
29039
29153
  const modifier = this.findModifier(128 /* Basic */);
29040
- this.reportDeclarationCanNotBePlacedInGroupWithModifier(node.name, modifier);
29154
+ this.reportDeclarationCannotBePlacedInGroupWithModifier(node.name, modifier);
29041
29155
  }
29042
29156
  }
29043
29157
  typeMemberAllowsAbstractModifier(kind) {
@@ -29073,16 +29187,16 @@ var ModifierValidator = class _ModifierValidator {
29073
29187
  }
29074
29188
  this._diagnostics.addDiagnostic(diagnostic);
29075
29189
  }
29076
- reportDeclarationCanNotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier) {
29190
+ reportDeclarationCannotBePlacedInGroupWithModifier(nodeForDiagnostic, modifier) {
29077
29191
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
29078
- 323 /* DeclarationCanNotBePlacedInGroupHaving0Modifier */,
29192
+ 323 /* DeclarationCannotBePlacedInGroupHaving0Modifier */,
29079
29193
  nodeForDiagnostic,
29080
29194
  [this.displayModifierNode(modifier)]
29081
29195
  ));
29082
29196
  }
29083
- reportModifierCanNotBeUsedWithAnotherModifier(firstModifier, secondModifier) {
29197
+ reportModifierCannotBeUsedWithAnotherModifier(firstModifier, secondModifier) {
29084
29198
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
29085
- 330 /* _0ModifierCanNotBeUsedWith1Modifier */,
29199
+ 330 /* _0ModifierCannotBeUsedWith1Modifier */,
29086
29200
  firstModifier,
29087
29201
  [this.displayModifierNode(firstModifier), this.displayModifierNode(secondModifier)]
29088
29202
  ));
@@ -31156,6 +31270,14 @@ var TsInteropContext3 = class {
31156
31270
  return new TagType(type, constructor.value, /* @__PURE__ */ new Map());
31157
31271
  });
31158
31272
  }
31273
+ createTypeEntityContext(entity) {
31274
+ return new EntityContext(
31275
+ getPackageContainingEntity(entity),
31276
+ new EntityHidingMatcherWithinTypeEntity(entity),
31277
+ void 0,
31278
+ void 0
31279
+ );
31280
+ }
31159
31281
  getPackagesCreationResult() {
31160
31282
  return this._packagesCreationResult.getOrInsertWith(() => this.createPackages());
31161
31283
  }
@@ -31784,6 +31906,9 @@ var TsPackageEntityForSymbolsWithUnknownOrigin = class {
31784
31906
  getLocale() {
31785
31907
  return 0 /* En */;
31786
31908
  }
31909
+ getDialect() {
31910
+ return DefaultDialect;
31911
+ }
31787
31912
  getMembers() {
31788
31913
  return new OriginalPackageMembers([], []);
31789
31914
  }
@@ -35902,6 +36027,229 @@ var TargetTypeHint = class {
35902
36027
  }
35903
36028
  };
35904
36029
 
36030
+ // source/analysis/TypeMemberImplementationChecker.ts
36031
+ var TypeMemberImplementationChecker = class {
36032
+ constructor(_analyzer, _typeEntity) {
36033
+ this._analyzer = _analyzer;
36034
+ this._typeEntity = _typeEntity;
36035
+ }
36036
+ check() {
36037
+ const notExplicitlyImplementedAbstractMembers = this._analyzer.getNotExplicitlyImplementedAbstractMembers(this._typeEntity);
36038
+ if (notExplicitlyImplementedAbstractMembers.length === 0 || this._typeEntity.typeEntityKind === 1 /* Structured */ && (this._typeEntity.isAbstract() || this._typeEntity.isAspect())) {
36039
+ return new TypeMemberImplementationCheckResult(notExplicitlyImplementedAbstractMembers, [], []);
36040
+ }
36041
+ const diagnosticsData = new Array();
36042
+ const type = this._analyzer.instantiateTypeByIdentitySubstitution(this._typeEntity);
36043
+ const typeForImplicitImplementationSearch = this._analyzer.typeUtils.getPossiblyAliasedBaseObjectType(type);
36044
+ const notImplementedAbstractMembers = new Array();
36045
+ const implicitImplementations = new Array();
36046
+ const implicitImplementationUtils = new ImplicitImplementationUtils(this._analyzer);
36047
+ const typeEntityContext = this._typeEntity.getContext();
36048
+ const displayService = new DisplayService(
36049
+ this._analyzer,
36050
+ typeEntityContext.lctxOrLocale,
36051
+ typeEntityContext.packageDialect
36052
+ );
36053
+ for (const notExplicitlyImplementedAbstractMember of notExplicitlyImplementedAbstractMembers) {
36054
+ let implicitImplementationMember;
36055
+ let hasReportedImplicitImplementationDiagnostics = false;
36056
+ if (typeForImplicitImplementationSearch !== void 0) {
36057
+ const diagnosticCount = diagnosticsData.length;
36058
+ implicitImplementationMember = implicitImplementationUtils.findImplementationInType(
36059
+ notExplicitlyImplementedAbstractMember,
36060
+ typeForImplicitImplementationSearch,
36061
+ typeEntityContext,
36062
+ diagnosticsData
36063
+ );
36064
+ hasReportedImplicitImplementationDiagnostics = diagnosticsData.length !== diagnosticCount;
36065
+ }
36066
+ if (implicitImplementationMember !== void 0) {
36067
+ implicitImplementations.push(new ImplicitAbstractMemberImplementationInfo(
36068
+ notExplicitlyImplementedAbstractMember,
36069
+ implicitImplementationMember
36070
+ ));
36071
+ } else {
36072
+ notImplementedAbstractMembers.push(notExplicitlyImplementedAbstractMember);
36073
+ if (!hasReportedImplicitImplementationDiagnostics) {
36074
+ const diagnosticData = DiagnosticData.withCode(
36075
+ 348 /* TypeDoesNotImplementMember0 */,
36076
+ [displayService.displayTypeMember(notExplicitlyImplementedAbstractMember)]
36077
+ );
36078
+ diagnosticsData.push(diagnosticData);
36079
+ }
36080
+ }
36081
+ }
36082
+ return new TypeMemberImplementationCheckResult(
36083
+ notImplementedAbstractMembers,
36084
+ implicitImplementations,
36085
+ diagnosticsData
36086
+ );
36087
+ }
36088
+ };
36089
+ var TypeMemberImplementationCheckResult = class {
36090
+ constructor(notImplementedAbstractMembers, implicitImplementations, diagnosticsData) {
36091
+ this.notImplementedAbstractMembers = notImplementedAbstractMembers;
36092
+ this.implicitImplementations = implicitImplementations;
36093
+ this.diagnosticsData = diagnosticsData;
36094
+ }
36095
+ };
36096
+ var ImplicitAbstractMemberImplementationInfo = class {
36097
+ constructor(abstractMember, implementingMember) {
36098
+ this.abstractMember = abstractMember;
36099
+ this.implementingMember = implementingMember;
36100
+ }
36101
+ };
36102
+ var ImplicitImplementationUtils = class {
36103
+ constructor(_analyzer) {
36104
+ this._analyzer = _analyzer;
36105
+ }
36106
+ findImplementationInType(member, type, context, diagnosticsData) {
36107
+ const matchingMembers = this.findMatchingMembersInType(member, type, context);
36108
+ const matchingRefObjectMember = matchingMembers.find((m) => TypeMemberEntity.isRefObjectTypeMember(m.getEntity()));
36109
+ if (matchingRefObjectMember === void 0 || TypeMemberEntity.isAbstract(matchingRefObjectMember.getEntity())) {
36110
+ return void 0;
36111
+ }
36112
+ const isValidImplementation = this.checkMatchingMemberCanImplementAbstractMember(
36113
+ matchingRefObjectMember,
36114
+ member,
36115
+ diagnosticsData,
36116
+ context
36117
+ );
36118
+ return isValidImplementation ? matchingRefObjectMember : void 0;
36119
+ }
36120
+ findMatchingMembersInType(member, type, context) {
36121
+ const typeMemberLookup = BoundTypeMemberLookup.ofType(
36122
+ this._analyzer,
36123
+ type,
36124
+ context.localizationContext,
36125
+ 1 /* OnlyInstanceMembers */,
36126
+ context.hidingMatcher,
36127
+ context.typeExtensionLookup
36128
+ );
36129
+ switch (member.kind) {
36130
+ case "field":
36131
+ return typeMemberLookup.getNamedMembersByName(SearchName.fromName(member.getName())).filter((m) => m.value.kind === "field").map((m) => m.value);
36132
+ case "method":
36133
+ return typeMemberLookup.getNamedMembersByName(SearchName.fromName(member.getName())).filter((m) => m.value.kind === "method" && this.areMatchingMethods(member, m.value)).map((m) => m.value);
36134
+ case "operator":
36135
+ return typeMemberLookup.getOperatorsByKind(member.getOperatorKind()).filter((m) => this.areMatchingTypeMembersWithoutTypeParameters(member, m.value)).map((m) => m.value);
36136
+ case "indexer":
36137
+ return typeMemberLookup.getIndexers().filter((m) => this.areMatchingTypeMembersWithoutTypeParameters(member, m.value)).map((m) => m.value);
36138
+ case "dereference-operator":
36139
+ return typeMemberLookup.getDereferenceOperators().map((m) => m.value);
36140
+ case "constructor":
36141
+ case "destructor":
36142
+ return [];
36143
+ default:
36144
+ Debug.never(member);
36145
+ }
36146
+ }
36147
+ checkMatchingMemberCanImplementAbstractMember(matchingMember, abstractMember, diagnosticsData, context) {
36148
+ const displayService = new DisplayService(
36149
+ this._analyzer,
36150
+ context.lctxOrLocale,
36151
+ context.containingPackage.getDialect()
36152
+ );
36153
+ const matchingMemberType = this._analyzer.overriddenMember.getMemberTypeOrReturnType(matchingMember);
36154
+ const abstractMemberType = this._analyzer.overriddenMember.getMemberTypeOrReturnType(abstractMember);
36155
+ if (!matchingMemberType.equals(abstractMemberType)) {
36156
+ diagnosticsData.push(DiagnosticData.withCode(
36157
+ 349 /* TypeDoesNotImplementMember0ImplicitImplementationTypeMismatch1 */,
36158
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36159
+ ));
36160
+ return false;
36161
+ }
36162
+ if (matchingMember.kind === "method" && abstractMember.kind === "method") {
36163
+ if (matchingMember.isAsync() !== abstractMember.isAsync()) {
36164
+ const code = matchingMember.isAsync() ? 350 /* TypeDoesNotImplementMember0ImplicitImplementation1IsAsync */ : 351 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotAsync */;
36165
+ diagnosticsData.push(DiagnosticData.withCode(
36166
+ code,
36167
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36168
+ ));
36169
+ return false;
36170
+ }
36171
+ }
36172
+ if (matchingMember.kind === "field" && abstractMember.kind === "field") {
36173
+ const matchingMemberEntity = matchingMember.getEntity();
36174
+ const matchingMemberSetter = matchingMemberEntity.getSetter();
36175
+ const isMatchingMemberWriteable = isComputedVariableEntity(matchingMemberEntity) ? matchingMemberSetter !== void 0 : !matchingMemberEntity.isConstant();
36176
+ const abstractMemberEntity = abstractMember.getEntity();
36177
+ const abstractMemberSetter = abstractMemberEntity.getSetter();
36178
+ const isAbstractMemberWriteable = isComputedVariableEntity(abstractMemberEntity) ? abstractMemberSetter !== void 0 : !abstractMemberEntity.isConstant();
36179
+ if (isAbstractMemberWriteable && !isMatchingMemberWriteable) {
36180
+ diagnosticsData.push(DiagnosticData.withCode(
36181
+ 352 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable */,
36182
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36183
+ ));
36184
+ return false;
36185
+ } else if (isAbstractMemberWriteable && isComputedVariableEntity(matchingMemberEntity) && matchingMemberSetter !== void 0) {
36186
+ const matchingMemberSetterHiding = matchingMemberSetter.isHidden();
36187
+ if (matchingMemberSetterHiding !== void 0 && !context.hidingMatcher.matches(matchingMemberSetterHiding)) {
36188
+ diagnosticsData.push(DiagnosticData.withCode(
36189
+ 353 /* TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden */,
36190
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36191
+ ));
36192
+ return false;
36193
+ }
36194
+ }
36195
+ }
36196
+ if (matchingMember.kind === "indexer" && abstractMember.kind === "indexer") {
36197
+ const matchingMemberSetter = matchingMember.getEntity().getSetter();
36198
+ const abstractMemberSetter = abstractMember.getEntity().getSetter();
36199
+ if (abstractMemberSetter !== void 0 && matchingMemberSetter === void 0) {
36200
+ diagnosticsData.push(DiagnosticData.withCode(
36201
+ 352 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable */,
36202
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36203
+ ));
36204
+ return false;
36205
+ } else if (abstractMemberSetter !== void 0 && matchingMemberSetter !== void 0) {
36206
+ const matchingMemberSetterHiding = matchingMemberSetter.isHidden();
36207
+ if (matchingMemberSetterHiding !== void 0 && !context.hidingMatcher.matches(matchingMemberSetterHiding)) {
36208
+ diagnosticsData.push(DiagnosticData.withCode(
36209
+ 353 /* TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden */,
36210
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36211
+ ));
36212
+ return false;
36213
+ }
36214
+ }
36215
+ }
36216
+ if (matchingMember.kind === "dereference-operator" && abstractMember.kind === "dereference-operator") {
36217
+ const matchingMemberSetter = matchingMember.getEntity().getSetter();
36218
+ const abstractMemberSetter = abstractMember.getEntity().getSetter();
36219
+ if (abstractMemberSetter !== void 0 && matchingMemberSetter === void 0) {
36220
+ diagnosticsData.push(DiagnosticData.withCode(
36221
+ 352 /* TypeDoesNotImplementMember0ImplicitImplementation1IsNotWriteable */,
36222
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36223
+ ));
36224
+ return false;
36225
+ } else if (abstractMemberSetter !== void 0 && matchingMemberSetter !== void 0) {
36226
+ const matchingMemberSetterHiding = matchingMemberSetter.isHidden();
36227
+ if (matchingMemberSetterHiding !== void 0 && !context.hidingMatcher.matches(matchingMemberSetterHiding)) {
36228
+ diagnosticsData.push(DiagnosticData.withCode(
36229
+ 353 /* TypeDoesNotImplementMember0ImplicitImplementation1WriteFunctionIsHidden */,
36230
+ [displayService.displayTypeMember(abstractMember), displayService.displayTypeMember(matchingMember)]
36231
+ ));
36232
+ return false;
36233
+ }
36234
+ }
36235
+ }
36236
+ return true;
36237
+ }
36238
+ areMatchingMethods(method1, method2) {
36239
+ const method1Parameters = method1.getValueParameters();
36240
+ const method2Parameters = method2.getValueParameters();
36241
+ return method1Parameters.length === method2Parameters.length && Query.from(method1Parameters).zip(method2Parameters, (p1, p2) => p1.getType().equals(p2.getType())).all((v) => v);
36242
+ }
36243
+ areMatchingTypeMembersWithoutTypeParameters(member1, member2) {
36244
+ if (member1.kind !== member2.kind) {
36245
+ return false;
36246
+ }
36247
+ const member1Parameters = member1.getValueParameters();
36248
+ const member2Parameters = member2.getValueParameters();
36249
+ return member1Parameters.length === member2Parameters.length && Query.from(member1Parameters).zip(member2Parameters, (p1, p2) => p1.getType().equals(p2.getType())).all((v) => v);
36250
+ }
36251
+ };
36252
+
35905
36253
  // source/analysis/Visitor.ts
35906
36254
  function visitChildren(node, visitChildCb) {
35907
36255
  for (const child of node.children) {
@@ -37620,10 +37968,11 @@ var NamedDeclaration_packageNameSegment = class {
37620
37968
  };
37621
37969
 
37622
37970
  // source/analysis/semantic-context/SemanticContextBasedEntityHidingMatcher.ts
37623
- var SemanticContextBasedEntityHidingMatcher = class {
37971
+ var SemanticContextBasedEntityHidingMatcher = class extends BaseEntityHidingMatcher {
37624
37972
  constructor(semanticContext) {
37973
+ super();
37625
37974
  this._sourceFile = new Cached();
37626
- this._type = new Cached();
37975
+ this._typeEntity = new Cached();
37627
37976
  this._package = new Cached();
37628
37977
  this._semanticContext = semanticContext;
37629
37978
  }
@@ -37633,76 +37982,12 @@ var SemanticContextBasedEntityHidingMatcher = class {
37633
37982
  get package() {
37634
37983
  return this._package.getOrInsertWith(() => this._semanticContext.getContainingPackage());
37635
37984
  }
37636
- get type() {
37637
- return this._type.getOrInsertWith(() => {
37985
+ get typeEntity() {
37986
+ return this._typeEntity.getOrInsertWith(() => {
37638
37987
  const typeOrExtension = this._semanticContext.getContainingTypeOrTypeExtension();
37639
37988
  return typeOrExtension?.kind === "type" ? typeOrExtension.value : void 0;
37640
37989
  });
37641
37990
  }
37642
- matches(hiding) {
37643
- switch (hiding.kind) {
37644
- case "type":
37645
- return this.type === hiding.typeEntity;
37646
- case "type-hierarchy": {
37647
- if (this.type === void 0) {
37648
- return false;
37649
- }
37650
- if (this.type === hiding.baseTypeEntity) {
37651
- return true;
37652
- }
37653
- const baseTypes = this.collectBaseTypesRecursively(this.type);
37654
- return baseTypes.has(hiding.baseTypeEntity);
37655
- }
37656
- case "file":
37657
- return this.sourceFile === hiding.sourceFile;
37658
- case "package":
37659
- return this.package === hiding.packageEntity;
37660
- default:
37661
- Debug.never(hiding);
37662
- }
37663
- }
37664
- collectBaseTypesRecursively(entity, result) {
37665
- result ??= /* @__PURE__ */ new Set();
37666
- switch (entity.typeEntityKind) {
37667
- case 1 /* Structured */: {
37668
- const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
37669
- if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
37670
- result.add(baseObjectType);
37671
- this.collectBaseTypesRecursively(baseObjectType, result);
37672
- }
37673
- for (const baseAspectType of entity.getBaseAspectTypes().cycleFree) {
37674
- const aspectTypeEntity = unaliasType(baseAspectType).getEntity();
37675
- if (aspectTypeEntity !== void 0 && !result.has(aspectTypeEntity)) {
37676
- result.add(aspectTypeEntity);
37677
- this.collectBaseTypesRecursively(aspectTypeEntity, result);
37678
- }
37679
- }
37680
- break;
37681
- }
37682
- case 3 /* Variant */: {
37683
- const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
37684
- if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
37685
- result.add(baseObjectType);
37686
- this.collectBaseTypesRecursively(baseObjectType, result);
37687
- }
37688
- break;
37689
- }
37690
- case 0 /* Function */: {
37691
- const baseObjectType = unaliasType(entity.getBaseObjectType().cycleFree)?.getEntity();
37692
- if (baseObjectType !== void 0 && !result.has(baseObjectType)) {
37693
- result.add(baseObjectType);
37694
- this.collectBaseTypesRecursively(baseObjectType, result);
37695
- }
37696
- break;
37697
- }
37698
- case 2 /* Parameter */:
37699
- case 4 /* Alias */:
37700
- break;
37701
- default:
37702
- Debug.never(entity);
37703
- }
37704
- return result;
37705
- }
37706
37991
  };
37707
37992
 
37708
37993
  // source/analysis/semantic-context/SemanticContextBase.ts
@@ -39962,7 +40247,8 @@ var Analyzer = class _Analyzer {
39962
40247
  this._diagnosticsComputedLazily = new Array();
39963
40248
  this._diagnosticsComputedLazilyAcceptor = new Cached();
39964
40249
  this._sourcePackageMemberConflictsDiagnostics = /* @__PURE__ */ new Map();
39965
- this._notImplementedAbstractTypeMembers = /* @__PURE__ */ new Map();
40250
+ this._notExplicitlyImplementedAbstractTypeMembers = /* @__PURE__ */ new Map();
40251
+ this._typeMemberImplementationCheckResults = /* @__PURE__ */ new Map();
39966
40252
  this.compilation = compilation;
39967
40253
  this._tsInteropInputs = tsInteropInputs;
39968
40254
  this.standardTypes = new StandardTypes(this);
@@ -40897,6 +41183,7 @@ var Analyzer = class _Analyzer {
40897
41183
  isAsync,
40898
41184
  0 /* SubstituteOwnSubstitutions */,
40899
41185
  containingPackage,
41186
+ void 0,
40900
41187
  void 0
40901
41188
  );
40902
41189
  const typeEntity = unfinishedTypeEntity.finish(typeParameters, valueParameters);
@@ -41007,25 +41294,25 @@ var Analyzer = class _Analyzer {
41007
41294
  }
41008
41295
  return new OriginalPackageMembers(namedMembers.toArray(), typeExtensions.toArray());
41009
41296
  }
41010
- instantiateType(entity, typeArguments) {
41011
- typeArguments ??= [];
41297
+ instantiateType(entity, typeArgumentsOrSubstitutions) {
41298
+ typeArgumentsOrSubstitutions ??= [];
41012
41299
  switch (entity.typeEntityKind) {
41013
41300
  case 3 /* Variant */: {
41014
- const substitutions = new Substitutions(this, entity.getTypeParameters(), typeArguments);
41301
+ const substitutions = typeArgumentsOrSubstitutions instanceof Array ? new Substitutions(this, entity.getTypeParameters(), typeArgumentsOrSubstitutions) : typeArgumentsOrSubstitutions;
41015
41302
  return this.typeFactory.getVariantType(entity, substitutions);
41016
41303
  }
41017
41304
  case 2 /* Parameter */:
41018
41305
  return this.typeFactory.getParameterType(entity, false);
41019
41306
  case 0 /* Function */: {
41020
- const substitutions = new Substitutions(this, entity.getTypeParameters(), typeArguments);
41307
+ const substitutions = typeArgumentsOrSubstitutions instanceof Array ? new Substitutions(this, entity.getTypeParameters(), typeArgumentsOrSubstitutions) : typeArgumentsOrSubstitutions;
41021
41308
  return this.typeFactory.getFunctionType(entity, substitutions);
41022
41309
  }
41023
41310
  case 1 /* Structured */: {
41024
- const substitutions = new Substitutions(this, entity.getTypeParameters(), typeArguments);
41311
+ const substitutions = typeArgumentsOrSubstitutions instanceof Array ? new Substitutions(this, entity.getTypeParameters(), typeArgumentsOrSubstitutions) : typeArgumentsOrSubstitutions;
41025
41312
  return this.typeFactory.getStructuredType(entity, substitutions);
41026
41313
  }
41027
41314
  case 4 /* Alias */: {
41028
- const substitutions = new Substitutions(this, entity.getTypeParameters(), typeArguments);
41315
+ const substitutions = typeArgumentsOrSubstitutions instanceof Array ? new Substitutions(this, entity.getTypeParameters(), typeArgumentsOrSubstitutions) : typeArgumentsOrSubstitutions;
41029
41316
  return this.typeFactory.getAliasType(entity, substitutions);
41030
41317
  }
41031
41318
  default:
@@ -41051,6 +41338,19 @@ var Analyzer = class _Analyzer {
41051
41338
  Debug.never(entity);
41052
41339
  }
41053
41340
  }
41341
+ instantiateTypeMemberByIdentitySubstitution(entity) {
41342
+ const container = entity.getContainer();
41343
+ let substitutions;
41344
+ if (container.kind === "type") {
41345
+ substitutions = Substitutions.identity(this, container.typeEntity.getTypeParameters());
41346
+ } else if (container.kind === "type-extension") {
41347
+ const extendedTypeTypeParameters = container.typeExtension.getExtendedTypeEntity()?.getTypeParameters() ?? [];
41348
+ substitutions = Substitutions.identity(this, extendedTypeTypeParameters);
41349
+ } else {
41350
+ Debug.never(container);
41351
+ }
41352
+ return TypeMemberEntity.instantiate(this, entity, substitutions);
41353
+ }
41054
41354
  createPackageMemberHiding(node, modifierFlags) {
41055
41355
  if ((modifierFlags & (1 /* HiddenWithoutLevel */ | 8 /* HiddenInFile */)) !== 0) {
41056
41356
  return new EntityHidingLevel_file(TreeQuery.fromNode(node).projectSourceFile(this));
@@ -41499,8 +41799,8 @@ var Analyzer = class _Analyzer {
41499
41799
  }
41500
41800
  return result;
41501
41801
  }
41502
- getNotImplementedAbstractMembers(typeEntity) {
41503
- let result = this._notImplementedAbstractTypeMembers.get(typeEntity);
41802
+ getNotExplicitlyImplementedAbstractMembers(typeEntity) {
41803
+ let result = this._notExplicitlyImplementedAbstractTypeMembers.get(typeEntity);
41504
41804
  if (result === void 0) {
41505
41805
  const type = this.instantiateTypeByIdentitySubstitution(typeEntity);
41506
41806
  const abstractMembers = new Array();
@@ -41526,7 +41826,7 @@ var Analyzer = class _Analyzer {
41526
41826
  if (baseTypeEntity.typeEntityKind === 1 /* Structured */ && baseTypeEntity.isRefObject() && !baseTypeEntity.isAbstract()) {
41527
41827
  continue;
41528
41828
  }
41529
- const notImplementedAbstractBaseTypeMembers = this.getNotImplementedAbstractMembers(baseTypeEntity);
41829
+ const notImplementedAbstractBaseTypeMembers = this.getTypeMemberImplementationCheckResult(baseTypeEntity).notImplementedAbstractMembers;
41530
41830
  for (const baseTypeMember of notImplementedAbstractBaseTypeMembers) {
41531
41831
  const substitutedBaseTypeMember = baseTypeMember.applySubstitutions(baseType.getSubstitutions());
41532
41832
  if (!overriddenMembers.some((m) => m.equals(substitutedBaseTypeMember))) {
@@ -41535,10 +41835,51 @@ var Analyzer = class _Analyzer {
41535
41835
  }
41536
41836
  }
41537
41837
  result = abstractMembers;
41538
- this._notImplementedAbstractTypeMembers.set(typeEntity, result);
41838
+ this._notExplicitlyImplementedAbstractTypeMembers.set(typeEntity, result);
41839
+ }
41840
+ return result;
41841
+ }
41842
+ getTypeMemberImplementationCheckResult(typeEntity) {
41843
+ let result = this._typeMemberImplementationCheckResults.get(typeEntity);
41844
+ if (result === void 0) {
41845
+ const checker = new TypeMemberImplementationChecker(this, typeEntity);
41846
+ result = checker.check();
41847
+ this._typeMemberImplementationCheckResults.set(typeEntity, result);
41539
41848
  }
41540
41849
  return result;
41541
41850
  }
41851
+ createEntityContextForTypeDeclaration(node) {
41852
+ let semanticContext;
41853
+ switch (node.kind) {
41854
+ case 17 /* AnonymousFunctionTypeDeclaration */:
41855
+ case 18 /* AnonymousStructuredTypeDeclaration */:
41856
+ case 19 /* AnonymousVariantTypeDeclaration */:
41857
+ case 20 /* PackageAliasTypeDeclaration */:
41858
+ case 26 /* PackageFunctionTypeDeclaration */:
41859
+ case 31 /* PackageStructuredTypeDeclaration */:
41860
+ case 36 /* PackageVariantTypeDeclaration */:
41861
+ semanticContext = this.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
41862
+ break;
41863
+ case 143 /* TypeParameterDeclaration */:
41864
+ semanticContext = this.semanticContext.containing(node);
41865
+ break;
41866
+ default:
41867
+ Debug.never(node);
41868
+ }
41869
+ return EntityContext.fromSemanticContext(semanticContext);
41870
+ }
41871
+ isFunctionBlockWithImplicitlyReturnedExpression(node) {
41872
+ if (node.expressionOrStatementList.kind === 90 /* StatementList */) {
41873
+ return false;
41874
+ }
41875
+ if (node.expressionOrStatementList.kind === 68 /* CallExpression */) {
41876
+ const returnType = this.semanticContext.ofFunctionBlock(node).getContainingSubprogram()?.getReturnType();
41877
+ if (returnType === void 0 || returnType.equals(this.standardTypes.none)) {
41878
+ return false;
41879
+ }
41880
+ }
41881
+ return true;
41882
+ }
41542
41883
  createTsInterop() {
41543
41884
  const configs = collectRequiredJsLibraryConfigs(this.compilation);
41544
41885
  const implementationByConfig = /* @__PURE__ */ new Map();
@@ -42282,7 +42623,10 @@ var Type4 = class {
42282
42623
  false,
42283
42624
  1 /* SubstituteOwnSubstitutionsAndMerge */,
42284
42625
  containingPackage,
42285
- void 0
42626
+ void 0,
42627
+ EntityContext.fromSemanticContext(
42628
+ this._analyzer.semanticContext.outermostSemanticContextOfRegularOrBlockFunctionLiteral(node)
42629
+ )
42286
42630
  ).finish([], []);
42287
42631
  return this._analyzer.typeFactory.getFunctionType(entity, Substitutions.empty(this._analyzer));
42288
42632
  }
@@ -42307,7 +42651,10 @@ var Type4 = class {
42307
42651
  isAsync,
42308
42652
  0 /* SubstituteOwnSubstitutions */,
42309
42653
  containingPackage,
42310
- void 0
42654
+ void 0,
42655
+ EntityContext.fromSemanticContext(
42656
+ this._analyzer.semanticContext.outermostSemanticContextOfRegularOrBlockFunctionLiteral(node)
42657
+ )
42311
42658
  );
42312
42659
  for (let i = 0; i < declaredParameters.length; i++) {
42313
42660
  const ownParameter = declaredParameters[i];
@@ -42356,7 +42703,10 @@ var Type4 = class {
42356
42703
  isAsync,
42357
42704
  0 /* SubstituteOwnSubstitutions */,
42358
42705
  containingPackage,
42359
- void 0
42706
+ void 0,
42707
+ EntityContext.fromSemanticContext(
42708
+ this._analyzer.semanticContext.outermostSemanticContextOfRegularOrBlockFunctionLiteral(node)
42709
+ )
42360
42710
  );
42361
42711
  const parameters = node.parameterClause.parameterList.parameters.map((p) => {
42362
42712
  const name = this._analyzer.createNameFromIdentifier(p.name);
@@ -42700,12 +43050,11 @@ var TargetType = class {
42700
43050
  }
42701
43051
  getTargetTypeOfChildOfFunctionBlock(parent, child) {
42702
43052
  Debug.assert(child === parent.expressionOrStatementList);
42703
- const semanticContext = this._analyzer.semanticContext.ofFunctionBlock(parent);
42704
- let returnType = semanticContext.getContainingSubprogram()?.getReturnType();
42705
- if (returnType !== void 0 && returnType.equals(this._analyzer.standardTypes.none)) {
42706
- returnType = void 0;
43053
+ if (this._analyzer.isFunctionBlockWithImplicitlyReturnedExpression(parent)) {
43054
+ return this._analyzer.semanticContext.ofFunctionBlock(parent).getContainingSubprogram()?.getReturnType();
43055
+ } else {
43056
+ return void 0;
42707
43057
  }
42708
- return returnType;
42709
43058
  }
42710
43059
  };
42711
43060
  var ReturnType = class {
@@ -43683,7 +44032,8 @@ var OverriddenMember = class {
43683
44032
  let result = this._overriddenAndShadowedFields.get(node);
43684
44033
  if (result === void 0) {
43685
44034
  const entity = node.kind === 52 /* FieldDeclaration */ ? this._analyzer.entity.ofFieldDeclaration(node) : this._analyzer.entity.ofComputedFieldDeclaration(node);
43686
- result = this.findOverriddenMembers(entity, node, this._isField, this._namedMemberFinder);
44035
+ const typeMember = this._analyzer.instantiateTypeMemberByIdentitySubstitution(entity);
44036
+ result = this.findOverriddenMembers(typeMember, node, this._isField, this._namedMemberFinder);
43687
44037
  this._overriddenAndShadowedFields.set(node, result);
43688
44038
  }
43689
44039
  return result;
@@ -43692,7 +44042,8 @@ var OverriddenMember = class {
43692
44042
  let result = this._overriddenAndShadowedMethods.get(node);
43693
44043
  if (result === void 0) {
43694
44044
  const entity = this._analyzer.entity.ofMethodDeclaration(node);
43695
- result = this.findOverriddenMembers(entity, node, this._isMethod, this._namedMemberFinder);
44045
+ const typeMember = this._analyzer.instantiateTypeMemberByIdentitySubstitution(entity);
44046
+ result = this.findOverriddenMembers(typeMember, node, this._isMethod, this._namedMemberFinder);
43696
44047
  this._overriddenAndShadowedMethods.set(node, result);
43697
44048
  }
43698
44049
  return result;
@@ -43701,7 +44052,8 @@ var OverriddenMember = class {
43701
44052
  let result = this._overriddenAndShadowedOperators.get(node);
43702
44053
  if (result === void 0) {
43703
44054
  const entity = this._analyzer.entity.ofOperatorDeclaration(node);
43704
- result = this.findOverriddenMembers(entity, node, this._isOperator, this._operatorFinder);
44055
+ const typeMember = this._analyzer.instantiateTypeMemberByIdentitySubstitution(entity);
44056
+ result = this.findOverriddenMembers(typeMember, node, this._isOperator, this._operatorFinder);
43705
44057
  this._overriddenAndShadowedOperators.set(node, result);
43706
44058
  }
43707
44059
  return result;
@@ -43710,7 +44062,8 @@ var OverriddenMember = class {
43710
44062
  let result = this._overriddenAndShadowedIndexers.get(node);
43711
44063
  if (result === void 0) {
43712
44064
  const entity = this._analyzer.entity.ofIndexerDeclaration(node);
43713
- result = this.findOverriddenMembers(entity, node, this._isIndexer, this._indexerFinder);
44065
+ const typeMember = this._analyzer.instantiateTypeMemberByIdentitySubstitution(entity);
44066
+ result = this.findOverriddenMembers(typeMember, node, this._isIndexer, this._indexerFinder);
43714
44067
  this._overriddenAndShadowedIndexers.set(node, result);
43715
44068
  }
43716
44069
  return result;
@@ -43719,7 +44072,13 @@ var OverriddenMember = class {
43719
44072
  let result = this._overriddenAndShadowedDereferenceOperators.get(node);
43720
44073
  if (result === void 0) {
43721
44074
  const entity = this._analyzer.entity.ofDereferenceOperatorDeclaration(node);
43722
- result = this.findOverriddenMembers(entity, node, this._isDereferenceOperator, this._dereferenceOperatorFinder);
44075
+ const typeMember = this._analyzer.instantiateTypeMemberByIdentitySubstitution(entity);
44076
+ result = this.findOverriddenMembers(
44077
+ typeMember,
44078
+ node,
44079
+ this._isDereferenceOperator,
44080
+ this._dereferenceOperatorFinder
44081
+ );
43723
44082
  this._overriddenAndShadowedDereferenceOperators.set(node, result);
43724
44083
  }
43725
44084
  return result;
@@ -43727,22 +44086,6 @@ var OverriddenMember = class {
43727
44086
  entityCanBeOverridden(entity) {
43728
44087
  return TypeMemberEntity.isBasic(entity);
43729
44088
  }
43730
- getEntityTypeOrReturnType(entity) {
43731
- switch (entity.kind) {
43732
- case 0 /* Variable */:
43733
- return entity.getType();
43734
- case 1 /* Function */:
43735
- return entity.getReturnType();
43736
- case 5 /* Indexer */:
43737
- return entity.getType();
43738
- case 6 /* DereferenceOperator */:
43739
- return entity.getType();
43740
- case 9 /* Operator */:
43741
- return entity.getReturnType();
43742
- default:
43743
- Debug.never(entity);
43744
- }
43745
- }
43746
44089
  getMemberTypeOrReturnType(member) {
43747
44090
  switch (member.kind) {
43748
44091
  case "field":
@@ -43755,16 +44098,48 @@ var OverriddenMember = class {
43755
44098
  return member.getType();
43756
44099
  case "dereference-operator":
43757
44100
  return member.getType();
44101
+ case "constructor":
44102
+ return member.getConstructedType();
44103
+ case "destructor":
44104
+ return this._analyzer.standardTypes.none;
44105
+ default:
44106
+ Debug.never(member);
44107
+ }
44108
+ }
44109
+ findMatchingMembersInType(member, type) {
44110
+ const entityContext = member.getEntity().getContainer().getEntity().getContext();
44111
+ const typeMemberLookup = BoundTypeMemberLookup.ofType(
44112
+ this._analyzer,
44113
+ type,
44114
+ entityContext.localizationContext,
44115
+ 1 /* OnlyInstanceMembers */,
44116
+ entityContext.hidingMatcher,
44117
+ entityContext.typeExtensionLookup
44118
+ );
44119
+ switch (member.kind) {
44120
+ case "field":
44121
+ case "method":
44122
+ return this.findOverriddenOrShadowedNamedMembersInType(member, typeMemberLookup);
44123
+ case "operator":
44124
+ return this.findOverriddenOrShadowedOperatorsInType(member, typeMemberLookup);
44125
+ case "indexer":
44126
+ return this.findOverriddenOrShadowedIndexersInType(member, typeMemberLookup);
44127
+ case "dereference-operator":
44128
+ return this.findOverriddenOrShadowedDereferenceOperatorsInType(member, typeMemberLookup);
44129
+ case "constructor":
44130
+ case "destructor":
44131
+ return [];
43758
44132
  default:
43759
44133
  Debug.never(member);
43760
44134
  }
43761
44135
  }
43762
- findOverriddenMembers(entity, contextualNode, isMemberOfCorrectKind, overriddenOrShadowedMemberFinder) {
44136
+ findOverriddenMembers(member, contextualNode, isMemberOfCorrectKind, overriddenOrShadowedMemberFinder) {
43763
44137
  const overriddenMembers = new Array();
43764
44138
  const shadowedMembers = new Array();
43765
- if (this.entityCanOverrideOrShadow(entity)) {
43766
- for (const lookup of this.enumerateTypeMemberLookups(entity, contextualNode)) {
43767
- const overriddenOrShadowedMembers = overriddenOrShadowedMemberFinder(entity, lookup);
44139
+ if (this.entityCanOverrideOrShadow(member.getEntity())) {
44140
+ let overridingMemberType;
44141
+ for (const lookup of this.enumerateTypeMemberLookups(member.getEntity(), contextualNode)) {
44142
+ const overriddenOrShadowedMembers = overriddenOrShadowedMemberFinder(member, lookup);
43768
44143
  for (const overriddenOrShadowedMember of overriddenOrShadowedMembers) {
43769
44144
  if (!isMemberOfCorrectKind(overriddenOrShadowedMember)) {
43770
44145
  if (!shadowedMembers.some((m) => m.value.equals(overriddenOrShadowedMember))) {
@@ -43778,14 +44153,17 @@ var OverriddenMember = class {
43778
44153
  const overriddenOrShadowedMemberEntity = overriddenOrShadowedMember.getEntity();
43779
44154
  let shadowReason;
43780
44155
  if (!this.entityCanBeOverridden(overriddenOrShadowedMemberEntity)) {
43781
- shadowReason = 1 /* BaseMemberCanNotBeOverridden */;
43782
- } else if (!entity.isOverride() && !TypeMemberEntity.isAbstract(overriddenOrShadowedMember.getEntity())) {
44156
+ shadowReason = 1 /* BaseMemberCannotBeOverridden */;
44157
+ } else if (!member.isOverride() && !TypeMemberEntity.isAbstract(overriddenOrShadowedMember.getEntity())) {
43783
44158
  shadowReason = 2 /* NoOverrideModifier */;
43784
44159
  }
43785
44160
  if (shadowReason === void 0 || shadowReason === 2 /* NoOverrideModifier */) {
43786
- const overridingType = this.getEntityTypeOrReturnType(entity);
44161
+ overridingMemberType ??= this.getMemberTypeOrReturnType(member);
43787
44162
  const overriddenType = this.getMemberTypeOrReturnType(overriddenOrShadowedMember);
43788
- const typeAssignabilityFlags = this._analyzer.getTypeAssignabilityFlags(overridingType, overriddenType);
44163
+ const typeAssignabilityFlags = this._analyzer.getTypeAssignabilityFlags(
44164
+ overridingMemberType,
44165
+ overriddenType
44166
+ );
43789
44167
  if ((typeAssignabilityFlags & (1 /* NotAssignable */ | 16 /* ImplicitConversion */)) !== 0) {
43790
44168
  shadowReason = shadowReason === 2 /* NoOverrideModifier */ ? 3 /* NoOverrideModifierAndTypeOrReturnTypeMismatch */ : 4 /* TypeOrReturnTypeMismatch */;
43791
44169
  }
@@ -43804,13 +44182,13 @@ var OverriddenMember = class {
43804
44182
  }
43805
44183
  return new OverriddenAndShadowedMembers(overriddenMembers, shadowedMembers);
43806
44184
  }
43807
- findOverriddenOrShadowedNamedMembersInType(entity, typeMemberLookup) {
44185
+ findOverriddenOrShadowedNamedMembersInType(member, typeMemberLookup) {
43808
44186
  return typeMemberLookup.getNamedMembersByName(new SearchName(
43809
- entity.getName(),
43810
- (entity.getName().flags & 2 /* OriginalName */) !== 0
44187
+ member.getName(),
44188
+ (member.getName().flags & 2 /* OriginalName */) !== 0
43811
44189
  )).filter((m) => {
43812
- if (entity.kind === 1 /* Function */ && m.value.kind === "method") {
43813
- return this.checkMethodOverridesOrShadowsMethod(entity, m.value);
44190
+ if (member.kind === "method" && m.value.kind === "method") {
44191
+ return this.checkMethodOverridesOrShadowsMethod(member, m.value);
43814
44192
  }
43815
44193
  return true;
43816
44194
  }).map((d) => d.value);
@@ -43905,7 +44283,7 @@ var OverriddenMember = class {
43905
44283
  };
43906
44284
  var ShadowReason = /* @__PURE__ */ ((ShadowReason2) => {
43907
44285
  ShadowReason2[ShadowReason2["BaseMemberHasDifferentKind"] = 0] = "BaseMemberHasDifferentKind";
43908
- ShadowReason2[ShadowReason2["BaseMemberCanNotBeOverridden"] = 1] = "BaseMemberCanNotBeOverridden";
44286
+ ShadowReason2[ShadowReason2["BaseMemberCannotBeOverridden"] = 1] = "BaseMemberCannotBeOverridden";
43909
44287
  ShadowReason2[ShadowReason2["NoOverrideModifier"] = 2] = "NoOverrideModifier";
43910
44288
  ShadowReason2[ShadowReason2["NoOverrideModifierAndTypeOrReturnTypeMismatch"] = 3] = "NoOverrideModifierAndTypeOrReturnTypeMismatch";
43911
44289
  ShadowReason2[ShadowReason2["TypeOrReturnTypeMismatch"] = 4] = "TypeOrReturnTypeMismatch";
@@ -45097,6 +45475,25 @@ var TypeUtils = class {
45097
45475
  Debug.never(type);
45098
45476
  }
45099
45477
  }
45478
+ getPossiblyAliasedBaseObjectType(type) {
45479
+ switch (type.kind) {
45480
+ case "function":
45481
+ return type.getBaseType();
45482
+ case "structured":
45483
+ return type.getBaseObjectType();
45484
+ case "variant":
45485
+ return type.getBaseType();
45486
+ case "alias":
45487
+ return void 0;
45488
+ case "unresolved":
45489
+ case "parameter":
45490
+ case "union":
45491
+ case "intersection":
45492
+ return void 0;
45493
+ default:
45494
+ Debug.never(type);
45495
+ }
45496
+ }
45100
45497
  getBaseAndAliasedTypesRecursively(type) {
45101
45498
  const result = new Array();
45102
45499
  this.collectBaseAndAliasedTypesRecursively(type, result);
@@ -45432,6 +45829,14 @@ var StubTypeParameterEntity = class {
45432
45829
  getTags() {
45433
45830
  return [];
45434
45831
  }
45832
+ getContext() {
45833
+ return new EntityContext(
45834
+ getPackageContainingEntity(this),
45835
+ new EntityHidingMatcherWithinTypeEntity(this),
45836
+ void 0,
45837
+ void 0
45838
+ );
45839
+ }
45435
45840
  };
45436
45841
  var ExpressionDenotesFunctionCheckResult = class {
45437
45842
  constructor(candidates, suitableFunctions) {
@@ -45750,7 +46155,7 @@ var BaseMemberConflictsValidator = class {
45750
46155
  }
45751
46156
  const membersText = "\n" + conflictingMembers.map((m) => `'${this.displayService.displayTypeMember(m.value, m.localization)}'`).join("\n");
45752
46157
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
45753
- 349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */,
46158
+ 355 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */,
45754
46159
  this._nodeForDiagnostic,
45755
46160
  [membersText]
45756
46161
  ));
@@ -45761,7 +46166,7 @@ var BaseMemberConflictsValidator = class {
45761
46166
  }
45762
46167
  const membersText = "\n" + conflictingMembers.map((m) => `'${this.displayService.displayTypeMember(m.value, m.localization)}'`).join("\n");
45763
46168
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
45764
- 350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */,
46169
+ 356 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */,
45765
46170
  this._nodeForDiagnostic,
45766
46171
  [originalName.unescapedOriginal, membersText]
45767
46172
  ));
@@ -46013,55 +46418,6 @@ var TypeMemberConflictsValidator = class {
46013
46418
  }
46014
46419
  };
46015
46420
 
46016
- // source/analysis/TypeMemberImplementationValidator.ts
46017
- var TypeMemberImplementationValidator = class {
46018
- constructor(_analyzer, _typeEntity, _displayService, _diagnostics) {
46019
- this._analyzer = _analyzer;
46020
- this._typeEntity = _typeEntity;
46021
- this._displayService = _displayService;
46022
- this._diagnostics = _diagnostics;
46023
- }
46024
- validate() {
46025
- if (this._typeEntity.typeEntityKind === 1 /* Structured */ && (this._typeEntity.isAbstract() || this._typeEntity.isAspect())) {
46026
- return;
46027
- }
46028
- const notImplementedAbstractMembers = this._analyzer.getNotImplementedAbstractMembers(this._typeEntity);
46029
- if (notImplementedAbstractMembers.length === 0) {
46030
- return;
46031
- }
46032
- const diagnosticLocation = this.getDiagnosticLocation();
46033
- if (diagnosticLocation === void 0) {
46034
- return;
46035
- }
46036
- for (const notImplementedAbstractMember of notImplementedAbstractMembers) {
46037
- const diagnosticData = DiagnosticData.withCode(
46038
- 347 /* TypeDoesNotImplementMember0 */,
46039
- [this._displayService.displayTypeMember(notImplementedAbstractMember)]
46040
- );
46041
- this._diagnostics.addDiagnostic(new Diagnostic(diagnosticData, diagnosticLocation));
46042
- }
46043
- }
46044
- getDiagnosticLocation() {
46045
- const definition = this._typeEntity.getDefinition();
46046
- if (definition.kind !== 0 /* Source */) {
46047
- return void 0;
46048
- }
46049
- if (NodeTypeUtils.isNamedTypeDeclaration(definition.node)) {
46050
- return this._analyzer.createNodeDiagnosticLocation(definition.node.name);
46051
- }
46052
- switch (definition.node.kind) {
46053
- case 17 /* AnonymousFunctionTypeDeclaration */:
46054
- return this._analyzer.createNodeDiagnosticLocation(definition.node.body.functionKeyword);
46055
- case 18 /* AnonymousStructuredTypeDeclaration */:
46056
- return this._analyzer.createNodeDiagnosticLocation(definition.node.body.structuredTypeKindKeyword);
46057
- case 19 /* AnonymousVariantTypeDeclaration */:
46058
- return this._analyzer.createNodeDiagnosticLocation(definition.node.body.variantKeyword);
46059
- default:
46060
- Debug.never(definition.node);
46061
- }
46062
- }
46063
- };
46064
-
46065
46421
  // source/analysis/DiagnosticCollector.ts
46066
46422
  var DiagnosticCollector = class _DiagnosticCollector {
46067
46423
  constructor(analyzer, sourceFile, cancellationToken) {
@@ -46262,6 +46618,29 @@ var DiagnosticCollector = class _DiagnosticCollector {
46262
46618
  case 134 /* PackageImportTranslation */: {
46263
46619
  break;
46264
46620
  }
46621
+ case 141 /* TextTemplateLiteralTranslation */: {
46622
+ const sourceSpans = node.sourceText.spanList.spans;
46623
+ sourceSpans.forEach((span, i) => {
46624
+ if (!(span.expression.kind === 86 /* IdentifierExpression */ || span.expression.kind === 82 /* TokenExpression */ && span.expression.token.tokenKind === 2 /* IntegerLiteral */)) {
46625
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
46626
+ 357 /* OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations */,
46627
+ span.expression
46628
+ ));
46629
+ }
46630
+ });
46631
+ if (node.translatedTextOrTranslationFunction.kind === 79 /* TextTemplateLiteral */) {
46632
+ const translatedSpans = node.translatedTextOrTranslationFunction.spanList.spans;
46633
+ translatedSpans.forEach((span, i) => {
46634
+ if (!(span.expression.kind === 86 /* IdentifierExpression */ || span.expression.kind === 82 /* TokenExpression */ && span.expression.token.tokenKind === 2 /* IntegerLiteral */)) {
46635
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
46636
+ 357 /* OnlyIdentifierOrIntegerLiteralIsAllowedAsParameterOfTextTemplateLiteralInTranslations */,
46637
+ span.expression
46638
+ ));
46639
+ }
46640
+ });
46641
+ }
46642
+ break;
46643
+ }
46265
46644
  case 31 /* PackageStructuredTypeDeclaration */: {
46266
46645
  const entity = this._analyzer.entity.ofPackageStructuredTypeDeclaration(node);
46267
46646
  if (entity.getBaseObjectType().causesCycle || entity.getBaseAspectTypes().causesCycle) {
@@ -46284,7 +46663,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
46284
46663
  this._diagnosticAcceptor,
46285
46664
  node.name
46286
46665
  ).validate();
46287
- new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
46666
+ const typeMemberImplementationCheckResult = this._analyzer.getTypeMemberImplementationCheckResult(entity);
46667
+ this.attachNodeLocationAndAddDiagnostics(typeMemberImplementationCheckResult.diagnosticsData, node.name);
46288
46668
  break;
46289
46669
  }
46290
46670
  case 36 /* PackageVariantTypeDeclaration */: {
@@ -46303,7 +46683,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
46303
46683
  this._diagnosticAcceptor,
46304
46684
  node.name
46305
46685
  ).validate();
46306
- new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
46686
+ const typeMemberImplementationCheckResult = this._analyzer.getTypeMemberImplementationCheckResult(entity);
46687
+ this.attachNodeLocationAndAddDiagnostics(typeMemberImplementationCheckResult.diagnosticsData, node.name);
46307
46688
  break;
46308
46689
  }
46309
46690
  case 30 /* TypeMemberDeclarationBlock */: {
@@ -46403,13 +46784,13 @@ var DiagnosticCollector = class _DiagnosticCollector {
46403
46784
  break;
46404
46785
  }
46405
46786
  case 122 /* TranslationsDeclaration */: {
46406
- if (this._sourceFile.package.kind !== "translation") {
46787
+ if (this._sourceFile.package.kind === "program") {
46407
46788
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
46408
46789
  242 /* TranslationsCanOnlyBeDeclaredInTranslationPackage */,
46409
46790
  node.translationsKeyword
46410
46791
  ));
46411
46792
  traversalController.stopChildrenTraverse();
46412
- } else {
46793
+ } else if (this._sourceFile.package.kind === "translation") {
46413
46794
  if (this.translationPackage === void 0) {
46414
46795
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
46415
46796
  243 /* UnknownTranslatedPackage0 */,
@@ -46650,7 +47031,11 @@ var DiagnosticCollector = class _DiagnosticCollector {
46650
47031
  this._diagnosticAcceptor,
46651
47032
  node.body.structuredTypeKindKeyword
46652
47033
  ).validate();
46653
- new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
47034
+ const typeMemberImplementationCheckResult = this._analyzer.getTypeMemberImplementationCheckResult(entity);
47035
+ this.attachNodeLocationAndAddDiagnostics(
47036
+ typeMemberImplementationCheckResult.diagnosticsData,
47037
+ node.body.structuredTypeKindKeyword
47038
+ );
46654
47039
  break;
46655
47040
  }
46656
47041
  case 19 /* AnonymousVariantTypeDeclaration */: {
@@ -46666,7 +47051,11 @@ var DiagnosticCollector = class _DiagnosticCollector {
46666
47051
  this._diagnosticAcceptor,
46667
47052
  node.body.variantKeyword
46668
47053
  ).validate();
46669
- new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
47054
+ const typeMemberImplementationCheckResult = this._analyzer.getTypeMemberImplementationCheckResult(entity);
47055
+ this.attachNodeLocationAndAddDiagnostics(
47056
+ typeMemberImplementationCheckResult.diagnosticsData,
47057
+ node.body.variantKeyword
47058
+ );
46670
47059
  break;
46671
47060
  }
46672
47061
  case 32 /* StructuredTypeDeclarationBody */: {
@@ -46733,7 +47122,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
46733
47122
  const entity = meaning.operator.value.getEntity();
46734
47123
  if (this.isReceiverBaseAutoVariableAccess(node.expression) && TypeMemberEntity.isAbstract(entity)) {
46735
47124
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
46736
- 348 /* CanNotAccessAbstractMemberOfBaseType */,
47125
+ 354 /* CannotAccessAbstractMemberOfBaseType */,
46737
47126
  node.caretToken
46738
47127
  ));
46739
47128
  }
@@ -46769,7 +47158,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
46769
47158
  node.closeSquareBracketToken.rangeWithoutTrivia.end
46770
47159
  );
46771
47160
  this.addDiagnostic(this._analyzer.createSourceFileRangeDiagnostic(
46772
- 348 /* CanNotAccessAbstractMemberOfBaseType */,
47161
+ 354 /* CannotAccessAbstractMemberOfBaseType */,
46773
47162
  range,
46774
47163
  this._sourceFile
46775
47164
  ));
@@ -46958,7 +47347,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
46958
47347
  this._analyzer.checkBodyOfBasicAliasTypeMethod(node, this._diagnosticAcceptor);
46959
47348
  }
46960
47349
  }
46961
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47350
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
46962
47351
  entity,
46963
47352
  this._analyzer.overriddenMember.getOverriddenAndShadowedMethods(node),
46964
47353
  node.name
@@ -46979,7 +47368,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
46979
47368
  checkOperatorDeclaration(node) {
46980
47369
  const entity = this._analyzer.entity.ofOperatorDeclaration(node);
46981
47370
  this.checkTypeMemberBodyPresence(entity, node.block, node.name);
46982
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47371
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
46983
47372
  entity,
46984
47373
  this._analyzer.overriddenMember.getOverriddenAndShadowedOperators(node),
46985
47374
  node.name
@@ -47067,7 +47456,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47067
47456
  ));
47068
47457
  }
47069
47458
  }
47070
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47459
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
47071
47460
  entity,
47072
47461
  this._analyzer.overriddenMember.getOverriddenAndShadowedFields(node),
47073
47462
  node.name
@@ -47077,7 +47466,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47077
47466
  const entity = this._analyzer.entity.ofComputedFieldDeclaration(node);
47078
47467
  entity.ensureAllDiagnosticsReported?.();
47079
47468
  this.checkTypeMemberBodyPresence(entity, node.block, node.name);
47080
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47469
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
47081
47470
  entity,
47082
47471
  this._analyzer.overriddenMember.getOverriddenAndShadowedFields(node),
47083
47472
  node.name
@@ -47097,7 +47486,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47097
47486
  const entity = this._analyzer.entity.ofIndexerDeclaration(node);
47098
47487
  entity.ensureAllDiagnosticsReported?.();
47099
47488
  this.checkTypeMemberBodyPresence(entity, node.block, node.parameterClause);
47100
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47489
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
47101
47490
  entity,
47102
47491
  this._analyzer.overriddenMember.getOverriddenAndShadowedIndexers(node),
47103
47492
  node.parameterClause
@@ -47119,7 +47508,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47119
47508
  const entity = this._analyzer.entity.ofDereferenceOperatorDeclaration(node);
47120
47509
  entity.ensureAllDiagnosticsReported?.();
47121
47510
  this.checkTypeMemberBodyPresence(entity, node.block, node.caretToken);
47122
- this.checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(
47511
+ this.checkTypeMemberCorrectlyOverridesBaseMember(
47123
47512
  entity,
47124
47513
  this._analyzer.overriddenMember.getOverriddenAndShadowedDereferenceOperators(node),
47125
47514
  node.caretToken
@@ -47457,7 +47846,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47457
47846
  const suitableFunctionEntity = suitableFunction.value.getEntity();
47458
47847
  if (meaning.kind === "instance-method-access" && this.isReceiverBaseAutoVariableAccess(node.expression) && suitableFunctionEntity.subkind === "method" && TypeMemberEntity.isAbstract(suitableFunctionEntity)) {
47459
47848
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
47460
- 348 /* CanNotAccessAbstractMemberOfBaseType */,
47849
+ 354 /* CannotAccessAbstractMemberOfBaseType */,
47461
47850
  node.memberName
47462
47851
  ));
47463
47852
  }
@@ -47484,7 +47873,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47484
47873
  const entity = meaning.field.value.getEntity();
47485
47874
  if (this.isReceiverBaseAutoVariableAccess(node.expression) && TypeMemberEntity.isAbstract(entity)) {
47486
47875
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
47487
- 348 /* CanNotAccessAbstractMemberOfBaseType */,
47876
+ 354 /* CannotAccessAbstractMemberOfBaseType */,
47488
47877
  node.memberName
47489
47878
  ));
47490
47879
  }
@@ -47494,7 +47883,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47494
47883
  const entity = meaning.singleSuitableOperator?.value.getEntity();
47495
47884
  if (entity !== void 0 && this.isReceiverBaseAutoVariableAccess(node.expression) && TypeMemberEntity.isAbstract(entity)) {
47496
47885
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
47497
- 348 /* CanNotAccessAbstractMemberOfBaseType */,
47886
+ 354 /* CannotAccessAbstractMemberOfBaseType */,
47498
47887
  node.memberName
47499
47888
  ));
47500
47889
  }
@@ -47985,7 +48374,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
47985
48374
  }
47986
48375
  }
47987
48376
  }
47988
- checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember(entity, overriddenAndShadowedMembers, nodeForDiagnostic) {
48377
+ checkTypeMemberCorrectlyOverridesBaseMember(entity, overriddenAndShadowedMembers, nodeForDiagnostic) {
47989
48378
  let reportedSomeDiagnostics = false;
47990
48379
  if (entity.isOverride() && overriddenAndShadowedMembers.overriddenMembers.length === 0) {
47991
48380
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
@@ -48008,10 +48397,10 @@ var DiagnosticCollector = class _DiagnosticCollector {
48008
48397
  ));
48009
48398
  break;
48010
48399
  }
48011
- case 1 /* BaseMemberCanNotBeOverridden */: {
48400
+ case 1 /* BaseMemberCannotBeOverridden */: {
48012
48401
  if (entity.isOverride()) {
48013
48402
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
48014
- 340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden */,
48403
+ 340 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden */,
48015
48404
  nodeForDiagnostic,
48016
48405
  [this._displayService.displayTypeMember(shadowedMember.value)]
48017
48406
  ));
@@ -48085,6 +48474,24 @@ var DiagnosticCollector = class _DiagnosticCollector {
48085
48474
  ));
48086
48475
  reportedSomeDiagnostics ||= true;
48087
48476
  }
48477
+ } else if (entity.kind === 5 /* Indexer */ && overriddenMemberEntity.kind === 5 /* Indexer */) {
48478
+ if (overriddenMemberEntity.getSetter() !== void 0 && entity.getSetter() === void 0) {
48479
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
48480
+ 347 /* OverridingMemberMustHaveWriteFunctionToMatchBaseMember0 */,
48481
+ nodeForDiagnostic,
48482
+ [this._displayService.displayTypeMember(overriddenMember)]
48483
+ ));
48484
+ reportedSomeDiagnostics ||= true;
48485
+ }
48486
+ } else if (entity.kind === 6 /* DereferenceOperator */ && overriddenMemberEntity.kind === 6 /* DereferenceOperator */) {
48487
+ if (overriddenMemberEntity.getSetter() !== void 0 && entity.getSetter() === void 0) {
48488
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
48489
+ 347 /* OverridingMemberMustHaveWriteFunctionToMatchBaseMember0 */,
48490
+ nodeForDiagnostic,
48491
+ [this._displayService.displayTypeMember(overriddenMember)]
48492
+ ));
48493
+ reportedSomeDiagnostics ||= true;
48494
+ }
48088
48495
  }
48089
48496
  }
48090
48497
  }
@@ -48099,6 +48506,12 @@ var DiagnosticCollector = class _DiagnosticCollector {
48099
48506
  overridingMemberHasCorrectHiding(overridingMemberHiding, overriddenMemberHiding) {
48100
48507
  return overriddenMemberHiding === void 0 ? overridingMemberHiding === void 0 : overriddenMemberHiding.kind === overridingMemberHiding?.kind;
48101
48508
  }
48509
+ attachNodeLocationAndAddDiagnostics(diagnosticsData, node) {
48510
+ for (const diagnosticData of diagnosticsData) {
48511
+ const location = this._analyzer.createNodeDiagnosticLocation(node);
48512
+ this.addDiagnostic(new Diagnostic(diagnosticData, location));
48513
+ }
48514
+ }
48102
48515
  addDiagnostic(diagnostic) {
48103
48516
  if (diagnostic !== void 0) {
48104
48517
  this._diagnostics.push(diagnostic);
@@ -48433,6 +48846,9 @@ var PackageAliasTypeDeclarationEntity = class {
48433
48846
  getSubstitutionApplicationMode() {
48434
48847
  return 0 /* SubstituteOwnSubstitutions */;
48435
48848
  }
48849
+ getContext() {
48850
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
48851
+ }
48436
48852
  };
48437
48853
  PackageAliasTypeDeclarationEntity = __decorateClass([
48438
48854
  entityToStringDecorator
@@ -49211,6 +49627,9 @@ var PackageFunctionTypeDeclarationEntity = class {
49211
49627
  getBaseObjectType() {
49212
49628
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForFunctionType()));
49213
49629
  }
49630
+ getContext() {
49631
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
49632
+ }
49214
49633
  };
49215
49634
  PackageFunctionTypeDeclarationEntity = __decorateClass([
49216
49635
  entityToStringDecorator
@@ -49274,6 +49693,9 @@ var AnonymousFunctionTypeDeclarationEntity = class {
49274
49693
  getBaseObjectType() {
49275
49694
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForFunctionType()));
49276
49695
  }
49696
+ getContext() {
49697
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
49698
+ }
49277
49699
  };
49278
49700
  AnonymousFunctionTypeDeclarationEntity = __decorateClass([
49279
49701
  entityToStringDecorator
@@ -49282,14 +49704,15 @@ var UnfinishedIntrinsicAnonymousFunctionTypeEntity = class {
49282
49704
  get unfinishedValue() {
49283
49705
  return this._unfinishedValue;
49284
49706
  }
49285
- constructor(analyzer, returnType, isAsync, substitutionApplicationMode, containingPackage, isHidden) {
49707
+ constructor(analyzer, returnType, isAsync, substitutionApplicationMode, containingPackage, isHidden, context) {
49286
49708
  this._unfinishedValue = new IntrinsicAnonymousFunctionTypeEntity(
49287
49709
  analyzer,
49288
49710
  returnType,
49289
49711
  isAsync,
49290
49712
  substitutionApplicationMode,
49291
49713
  containingPackage,
49292
- isHidden
49714
+ isHidden,
49715
+ context
49293
49716
  );
49294
49717
  }
49295
49718
  finish(typeParameters, valueParameters) {
@@ -49302,7 +49725,7 @@ var IntrinsicAnonymousFunctionTypeEntity = class {
49302
49725
  /**
49303
49726
  * После создания данного класса необходимо вызывать setTypeParameters и setValueParameters.
49304
49727
  */
49305
- constructor(_analyzer, _returnType, _isAsync, _substitutionApplicationMode, _containingPackage, _isHidden) {
49728
+ constructor(_analyzer, _returnType, _isAsync, _substitutionApplicationMode, _containingPackage, _isHidden, context) {
49306
49729
  this._analyzer = _analyzer;
49307
49730
  this._returnType = _returnType;
49308
49731
  this._isAsync = _isAsync;
@@ -49314,6 +49737,12 @@ var IntrinsicAnonymousFunctionTypeEntity = class {
49314
49737
  this.subkind = "anonymous";
49315
49738
  this._members = new Cached();
49316
49739
  this._baseObjectType = new Cached();
49740
+ this._context = context ?? new EntityContext(
49741
+ getPackageContainingEntity(this),
49742
+ new EntityHidingMatcherWithinTypeEntity(this),
49743
+ void 0,
49744
+ void 0
49745
+ );
49317
49746
  }
49318
49747
  getNaming() {
49319
49748
  return new EntityNaming_anonymous();
@@ -49368,6 +49797,9 @@ var IntrinsicAnonymousFunctionTypeEntity = class {
49368
49797
  getBaseObjectType() {
49369
49798
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForFunctionType()));
49370
49799
  }
49800
+ getContext() {
49801
+ return this._context;
49802
+ }
49371
49803
  };
49372
49804
  IntrinsicAnonymousFunctionTypeEntity = __decorateClass([
49373
49805
  entityToStringDecorator
@@ -49376,7 +49808,7 @@ var UnfinishedIntrinsicPackageFunctionTypeEntity = class {
49376
49808
  get unfinishedValue() {
49377
49809
  return this._unfinishedValue;
49378
49810
  }
49379
- constructor(analyzer, name, returnType, isAsync, substitutionApplicationMode, containingPackage, isHidden) {
49811
+ constructor(analyzer, name, returnType, isAsync, substitutionApplicationMode, containingPackage, isHidden, context) {
49380
49812
  this._unfinishedValue = new IntrinsicPackageFunctionTypeEntity(
49381
49813
  analyzer,
49382
49814
  name,
@@ -49384,7 +49816,8 @@ var UnfinishedIntrinsicPackageFunctionTypeEntity = class {
49384
49816
  isAsync,
49385
49817
  substitutionApplicationMode,
49386
49818
  containingPackage,
49387
- isHidden
49819
+ isHidden,
49820
+ context
49388
49821
  );
49389
49822
  }
49390
49823
  finish(typeParameters, valueParameters) {
@@ -49397,7 +49830,7 @@ var IntrinsicPackageFunctionTypeEntity = class {
49397
49830
  /**
49398
49831
  * После создания данного класса необходимо вызывать setTypeParameters и setValueParameters.
49399
49832
  */
49400
- constructor(_analyzer, _name, _returnType, _isAsync, _substitutionApplicationMode, _containingPackage, _isHidden) {
49833
+ constructor(_analyzer, _name, _returnType, _isAsync, _substitutionApplicationMode, _containingPackage, _isHidden, context) {
49401
49834
  this._analyzer = _analyzer;
49402
49835
  this._name = _name;
49403
49836
  this._returnType = _returnType;
@@ -49410,6 +49843,12 @@ var IntrinsicPackageFunctionTypeEntity = class {
49410
49843
  this.subkind = "package";
49411
49844
  this._members = new Cached();
49412
49845
  this._baseObjectType = new Cached();
49846
+ this._context = context ?? new EntityContext(
49847
+ getPackageContainingEntity(this),
49848
+ new EntityHidingMatcherWithinTypeEntity(this),
49849
+ void 0,
49850
+ void 0
49851
+ );
49413
49852
  }
49414
49853
  getName() {
49415
49854
  return this._name;
@@ -49467,6 +49906,9 @@ var IntrinsicPackageFunctionTypeEntity = class {
49467
49906
  getBaseObjectType() {
49468
49907
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForFunctionType()));
49469
49908
  }
49909
+ getContext() {
49910
+ return this._context;
49911
+ }
49470
49912
  };
49471
49913
  IntrinsicPackageFunctionTypeEntity = __decorateClass([
49472
49914
  entityToStringDecorator
@@ -49936,6 +50378,9 @@ var SourcePackageEntity = class {
49936
50378
  getLocale() {
49937
50379
  return this._package.configuration.locale;
49938
50380
  }
50381
+ getDialect() {
50382
+ return this._package.configuration.dialect;
50383
+ }
49939
50384
  getMembers() {
49940
50385
  return this._members.getOrInsertWith(() => this._analyzer.createPackageMembers(this._package));
49941
50386
  }
@@ -50358,6 +50803,9 @@ var PackageStructuredTypeDeclarationEntity = class {
50358
50803
  getSubstitutionApplicationMode() {
50359
50804
  return this._data.getSubstitutionApplicationMode();
50360
50805
  }
50806
+ getContext() {
50807
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
50808
+ }
50361
50809
  };
50362
50810
  PackageStructuredTypeDeclarationEntity = __decorateClass([
50363
50811
  entityToStringDecorator
@@ -50549,6 +50997,9 @@ var AnonymousStructuredTypeDeclarationEntity = class {
50549
50997
  getContainingPackage() {
50550
50998
  return TreeQuery.fromNode(this._node).packageEntity(this._analyzer);
50551
50999
  }
51000
+ getContext() {
51001
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
51002
+ }
50552
51003
  getBaseTypes() {
50553
51004
  return this._baseTypes.getOrInsertWith(() => {
50554
51005
  if (this._node.body.baseTypeList === void 0) {
@@ -50574,7 +51025,7 @@ var UnfinishedIntrinsicPackageStructuredTypeEntity = class {
50574
51025
  get unfinishedValue() {
50575
51026
  return this._unfinishedValue;
50576
51027
  }
50577
- constructor(analyzer, name, containingPackage, typeParameters, isBasic, isAbstract, isAspect, isRefObject, baseObjectType, baseAspectTypes, isHidden, substitutionApplicationMode) {
51028
+ constructor(analyzer, name, containingPackage, typeParameters, isBasic, isAbstract, isAspect, isRefObject, baseObjectType, baseAspectTypes, isHidden, substitutionApplicationMode, context) {
50578
51029
  this._unfinishedValue = new IntrinsicPackageStructuredTypeEntity(
50579
51030
  analyzer,
50580
51031
  name,
@@ -50587,7 +51038,8 @@ var UnfinishedIntrinsicPackageStructuredTypeEntity = class {
50587
51038
  baseObjectType,
50588
51039
  baseAspectTypes,
50589
51040
  isHidden,
50590
- substitutionApplicationMode
51041
+ substitutionApplicationMode,
51042
+ context
50591
51043
  );
50592
51044
  }
50593
51045
  finish(ownNamedMembers, ownOperators, ownConstructors, ownDestructors, ownIndexers, ownDereferenceOperators) {
@@ -50606,7 +51058,7 @@ var IntrinsicPackageStructuredTypeEntity = class {
50606
51058
  /**
50607
51059
  * После создания необходимо вызывать setMembers.
50608
51060
  */
50609
- constructor(_analyzer, _name, _containingPackage, _typeParameters, _isBasic, _isAbstract, _isAspect, _isRefObject, _baseObjectType, _baseAspectTypes, _isHidden, _substitutionApplicationMode) {
51061
+ constructor(_analyzer, _name, _containingPackage, _typeParameters, _isBasic, _isAbstract, _isAspect, _isRefObject, _baseObjectType, _baseAspectTypes, _isHidden, _substitutionApplicationMode, context) {
50610
51062
  this._analyzer = _analyzer;
50611
51063
  this._name = _name;
50612
51064
  this._containingPackage = _containingPackage;
@@ -50624,6 +51076,12 @@ var IntrinsicPackageStructuredTypeEntity = class {
50624
51076
  this.subkind = "package";
50625
51077
  this._safeBaseObjectType = new Cached();
50626
51078
  this._safeBaseAspectTypes = new Cached();
51079
+ this._context = context ?? new EntityContext(
51080
+ getPackageContainingEntity(this),
51081
+ new EntityHidingMatcherWithinTypeEntity(this),
51082
+ void 0,
51083
+ void 0
51084
+ );
50627
51085
  }
50628
51086
  getNaming() {
50629
51087
  return new EntityNaming_named(this._name);
@@ -50690,6 +51148,9 @@ var IntrinsicPackageStructuredTypeEntity = class {
50690
51148
  getSubstitutionApplicationMode() {
50691
51149
  return this._substitutionApplicationMode;
50692
51150
  }
51151
+ getContext() {
51152
+ return this._context;
51153
+ }
50693
51154
  };
50694
51155
  IntrinsicPackageStructuredTypeEntity = __decorateClass([
50695
51156
  entityToStringDecorator
@@ -50698,7 +51159,7 @@ var UnfinishedIntrinsicAnonymousStructuredTypeEntity = class {
50698
51159
  get unfinishedValue() {
50699
51160
  return this._unfinishedValue;
50700
51161
  }
50701
- constructor(analyzer, typeParameters, isAspect, isRefObject, baseObjectType, baseAspectTypes, isHidden, substitutionApplicationMode, containingPackage) {
51162
+ constructor(analyzer, typeParameters, isAspect, isRefObject, baseObjectType, baseAspectTypes, isHidden, substitutionApplicationMode, containingPackage, context) {
50702
51163
  this._unfinishedValue = new IntrinsicAnonymousStructuredTypeEntity(
50703
51164
  analyzer,
50704
51165
  typeParameters,
@@ -50708,7 +51169,8 @@ var UnfinishedIntrinsicAnonymousStructuredTypeEntity = class {
50708
51169
  baseAspectTypes,
50709
51170
  isHidden,
50710
51171
  substitutionApplicationMode,
50711
- containingPackage
51172
+ containingPackage,
51173
+ context
50712
51174
  );
50713
51175
  }
50714
51176
  finish(ownNamedMembers, ownOperators, ownConstructors, ownDestructors, ownIndexers, ownDereferenceOperators) {
@@ -50727,7 +51189,7 @@ var IntrinsicAnonymousStructuredTypeEntity = class {
50727
51189
  /**
50728
51190
  * После создания необходимо вызывать setMembers.
50729
51191
  */
50730
- constructor(_analyzer, _typeParameters, _isAspect, _isRefObject, _baseObjectType, _baseAspectTypes, _isHidden, _substitutionApplicationMode, _containingPackage) {
51192
+ constructor(_analyzer, _typeParameters, _isAspect, _isRefObject, _baseObjectType, _baseAspectTypes, _isHidden, _substitutionApplicationMode, _containingPackage, context) {
50731
51193
  this._analyzer = _analyzer;
50732
51194
  this._typeParameters = _typeParameters;
50733
51195
  this._isAspect = _isAspect;
@@ -50742,6 +51204,12 @@ var IntrinsicAnonymousStructuredTypeEntity = class {
50742
51204
  this.subkind = "anonymous";
50743
51205
  this._safeBaseObjectType = new Cached();
50744
51206
  this._safeBaseAspectTypes = new Cached();
51207
+ this._context = context ?? new EntityContext(
51208
+ getPackageContainingEntity(this),
51209
+ new EntityHidingMatcherWithinTypeEntity(this),
51210
+ void 0,
51211
+ void 0
51212
+ );
50745
51213
  }
50746
51214
  getNaming() {
50747
51215
  return new EntityNaming_anonymous();
@@ -50805,6 +51273,9 @@ var IntrinsicAnonymousStructuredTypeEntity = class {
50805
51273
  getContainingPackage() {
50806
51274
  return this._containingPackage;
50807
51275
  }
51276
+ getContext() {
51277
+ return this._context;
51278
+ }
50808
51279
  };
50809
51280
  IntrinsicAnonymousStructuredTypeEntity = __decorateClass([
50810
51281
  entityToStringDecorator
@@ -50819,7 +51290,7 @@ function validateBaseTypeListAndCreateBaseTypes(analyzer, baseTypeList, entity,
50819
51290
  if (unaliasedBaseType.isRefObject()) {
50820
51291
  if (declaredBaseObjectType !== void 0) {
50821
51292
  diagnostics.addDiagnostic(analyzer.createNodeDiagnostic(
50822
- 313 /* TypeCanNotHaveMultipleBaseObjectTypes */,
51293
+ 313 /* TypeCannotHaveMultipleBaseObjectTypes */,
50823
51294
  baseTypeSpecifier
50824
51295
  ));
50825
51296
  } else if (entity.isPlainObject()) {
@@ -50834,7 +51305,7 @@ function validateBaseTypeListAndCreateBaseTypes(analyzer, baseTypeList, entity,
50834
51305
  ));
50835
51306
  } else if (!unaliasedBaseType.markedBasic() && !unaliasedBaseType.isAbstract()) {
50836
51307
  diagnostics.addDiagnostic(analyzer.createNodeDiagnostic(
50837
- 314 /* TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType */,
51308
+ 314 /* TypeThatIsNotMarkedAsBasicCannotBeUsedAsBaseType */,
50838
51309
  baseTypeSpecifier
50839
51310
  ));
50840
51311
  } else {
@@ -50842,7 +51313,7 @@ function validateBaseTypeListAndCreateBaseTypes(analyzer, baseTypeList, entity,
50842
51313
  }
50843
51314
  } else if (unaliasedBaseType.isPlainObject()) {
50844
51315
  diagnostics.addDiagnostic(analyzer.createNodeDiagnostic(
50845
- 315 /* PlainObjectTypeCanNotBeUsedAsBaseType */,
51316
+ 315 /* PlainObjectTypeCannotBeUsedAsBaseType */,
50846
51317
  baseTypeSpecifier
50847
51318
  ));
50848
51319
  } else if (unaliasedBaseType.isAspect()) {
@@ -50922,6 +51393,9 @@ var SourceTypeExtensionEntity = class {
50922
51393
  getTags() {
50923
51394
  return this._analyzer.tags.ofNodeWithTags(this._node);
50924
51395
  }
51396
+ getContext() {
51397
+ return EntityContext.fromSemanticContext(this._analyzer.semanticContext.ofTypeExtensionDeclarationBody(this._node));
51398
+ }
50925
51399
  };
50926
51400
  SourceTypeExtensionEntity = __decorateClass([
50927
51401
  entityToStringDecorator
@@ -51160,12 +51634,15 @@ var SourceTypeParameterEntity = class {
51160
51634
  getTags() {
51161
51635
  return [];
51162
51636
  }
51637
+ getContext() {
51638
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
51639
+ }
51163
51640
  };
51164
51641
  SourceTypeParameterEntity = __decorateClass([
51165
51642
  entityToStringDecorator
51166
51643
  ], SourceTypeParameterEntity);
51167
51644
  var IntrinsicTypeParameterEntity = class {
51168
- constructor(_name, _constraint, _defaultValue, _containingEntity) {
51645
+ constructor(_name, _constraint, _defaultValue, _containingEntity, context) {
51169
51646
  this._name = _name;
51170
51647
  this._constraint = _constraint;
51171
51648
  this._defaultValue = _defaultValue;
@@ -51173,6 +51650,12 @@ var IntrinsicTypeParameterEntity = class {
51173
51650
  this.kind = 2 /* Type */;
51174
51651
  this.typeEntityKind = 2 /* Parameter */;
51175
51652
  this._typeParameterConstraint = new TypeParameterConstraint(_constraint);
51653
+ this._context = context ?? new EntityContext(
51654
+ getPackageContainingEntity(this),
51655
+ new EntityHidingMatcherWithinTypeEntity(this),
51656
+ void 0,
51657
+ void 0
51658
+ );
51176
51659
  }
51177
51660
  getName() {
51178
51661
  return this._name;
@@ -51201,6 +51684,9 @@ var IntrinsicTypeParameterEntity = class {
51201
51684
  getTags() {
51202
51685
  return [];
51203
51686
  }
51687
+ getContext() {
51688
+ return this._context;
51689
+ }
51204
51690
  };
51205
51691
  IntrinsicTypeParameterEntity = __decorateClass([
51206
51692
  entityToStringDecorator
@@ -51313,6 +51799,9 @@ var PackageVariantTypeDeclarationEntity = class {
51313
51799
  getBaseObjectType() {
51314
51800
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForVariantType()));
51315
51801
  }
51802
+ getContext() {
51803
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
51804
+ }
51316
51805
  };
51317
51806
  PackageVariantTypeDeclarationEntity = __decorateClass([
51318
51807
  entityToStringDecorator
@@ -51386,6 +51875,9 @@ var AnonymousVariantTypeDeclarationEntity = class {
51386
51875
  getBaseObjectType() {
51387
51876
  return this._baseObjectType.getOrInsertWith(() => new BaseObjectType(this._analyzer.getImplicitBaseTypeForVariantType()));
51388
51877
  }
51878
+ getContext() {
51879
+ return this._analyzer.createEntityContextForTypeDeclaration(this._node);
51880
+ }
51389
51881
  };
51390
51882
  AnonymousVariantTypeDeclarationEntity = __decorateClass([
51391
51883
  entityToStringDecorator
@@ -51525,6 +52017,11 @@ var TypeMemberEntity;
51525
52017
  return container.kind === "type" && container.typeEntity.typeEntityKind === 1 /* Structured */ && container.typeEntity.isAspect();
51526
52018
  }
51527
52019
  TypeMemberEntity7.isAspectTypeMember = isAspectTypeMember;
52020
+ function isRefObjectTypeMember(entity) {
52021
+ const container = entity.getContainer();
52022
+ return container.kind === "type" && container.typeEntity.typeEntityKind === 1 /* Structured */ && container.typeEntity.isRefObject();
52023
+ }
52024
+ TypeMemberEntity7.isRefObjectTypeMember = isRefObjectTypeMember;
51528
52025
  function isStatic(entity) {
51529
52026
  switch (entity.kind) {
51530
52027
  case 0 /* Variable */:
@@ -51608,7 +52105,7 @@ var TypeMemberEntity;
51608
52105
  case 6 /* DereferenceOperator */:
51609
52106
  return new DereferenceOperator(entity, substitutions);
51610
52107
  case 7 /* Constructor */:
51611
- return new Constructor(entity, substitutions);
52108
+ return new Constructor(analyzer, entity, substitutions);
51612
52109
  case 8 /* Destructor */:
51613
52110
  return new Destructor(entity, substitutions);
51614
52111
  case 9 /* Operator */:
@@ -51619,6 +52116,28 @@ var TypeMemberEntity;
51619
52116
  }
51620
52117
  TypeMemberEntity7.instantiate = instantiate;
51621
52118
  })(TypeMemberEntity || (TypeMemberEntity = {}));
52119
+ var EntityContext = class _EntityContext {
52120
+ constructor(containingPackage, hidingMatcher, localizationContext, typeExtensionLookup) {
52121
+ this.containingPackage = containingPackage;
52122
+ this.hidingMatcher = hidingMatcher;
52123
+ this.localizationContext = localizationContext;
52124
+ this.typeExtensionLookup = typeExtensionLookup;
52125
+ }
52126
+ get lctxOrLocale() {
52127
+ return this.localizationContext ?? this.containingPackage.getLocale();
52128
+ }
52129
+ get packageDialect() {
52130
+ return this.containingPackage.getDialect();
52131
+ }
52132
+ static fromSemanticContext(semanticContext) {
52133
+ return new _EntityContext(
52134
+ semanticContext.getContainingPackage(),
52135
+ semanticContext.getHidingMatcher(),
52136
+ semanticContext.getLocalizationContext(),
52137
+ semanticContext
52138
+ );
52139
+ }
52140
+ };
51622
52141
  function entityToStringDecorator(constructor) {
51623
52142
  if (!("debuggerDisplay" in constructor.prototype)) {
51624
52143
  Object.defineProperty(constructor.prototype, "debuggerDisplay", {
@@ -51851,6 +52370,65 @@ var EntityOrPackageNameTreeNode_node = class {
51851
52370
  }
51852
52371
  };
51853
52372
 
52373
+ // source/analysis/Localization.ts
52374
+ var Localization;
52375
+ ((Localization2) => {
52376
+ class Original {
52377
+ constructor(locale) {
52378
+ this.locale = locale;
52379
+ this.kind = "original";
52380
+ }
52381
+ equals(other) {
52382
+ return this.kind === other.kind && this.locale === other.locale;
52383
+ }
52384
+ static ofEntity(entity) {
52385
+ const locale = getPackageContainingEntity(entity).getLocale();
52386
+ return new Localization2.Original(locale);
52387
+ }
52388
+ }
52389
+ Localization2.Original = Original;
52390
+ class Translated {
52391
+ constructor(translation) {
52392
+ this.translation = translation;
52393
+ this.kind = "translated";
52394
+ }
52395
+ get locale() {
52396
+ return this.translation.translationPackage.getTranslationLocale();
52397
+ }
52398
+ equals(other) {
52399
+ return this.kind === other.kind && this.translation.equals(other.translation);
52400
+ }
52401
+ }
52402
+ Localization2.Translated = Translated;
52403
+ })(Localization || (Localization = {}));
52404
+ var Translation = class {
52405
+ constructor(translationPackage) {
52406
+ this.translationPackage = translationPackage;
52407
+ }
52408
+ equals(other) {
52409
+ return this.translationPackage === other.translationPackage;
52410
+ }
52411
+ };
52412
+ var LocalizedName;
52413
+ ((LocalizedName2) => {
52414
+ class Original {
52415
+ constructor(value, localization) {
52416
+ this.value = value;
52417
+ this.localization = localization;
52418
+ this.kind = "original";
52419
+ }
52420
+ }
52421
+ LocalizedName2.Original = Original;
52422
+ class Translated {
52423
+ constructor(value, localization) {
52424
+ this.value = value;
52425
+ this.localization = localization;
52426
+ this.kind = "translated";
52427
+ }
52428
+ }
52429
+ LocalizedName2.Translated = Translated;
52430
+ })(LocalizedName || (LocalizedName = {}));
52431
+
51854
52432
  // source/emitter/Emitter.ts
51855
52433
  import { CodeGenerator } from "@babel/generator";
51856
52434
 
@@ -52117,6 +52695,7 @@ var VariableEntityDetails = class {
52117
52695
  this.isAbstract = false;
52118
52696
  this.isTypeExtensionMemberAddedToPrototype = false;
52119
52697
  this.isStatic = false;
52698
+ this.isConst = false;
52120
52699
  }
52121
52700
  };
52122
52701
  var TypeOrExtensionEntityDetails = class {
@@ -52130,6 +52709,7 @@ var TypeOrExtensionEntityDetails = class {
52130
52709
  * актуальную для них самих информацию, и анализ переопределённых членов типа не требуется.
52131
52710
  */
52132
52711
  this.areOwnComputedNamesOfMembersResolved = false;
52712
+ this.implicitlyImplementedAbstractMembersByImplementingMember = /* @__PURE__ */ new Map();
52133
52713
  }
52134
52714
  };
52135
52715
  var PackageEntityDetails = class {
@@ -54293,7 +54873,7 @@ var StandardTypes2 = class {
54293
54873
  };
54294
54874
 
54295
54875
  // source/emitter/EntityMap.ts
54296
- var EntityMap = class {
54876
+ var EntityMap = class _EntityMap {
54297
54877
  constructor(analyzer, targetPlatform) {
54298
54878
  this._variables = /* @__PURE__ */ new Map();
54299
54879
  this._functions = /* @__PURE__ */ new Map();
@@ -54321,6 +54901,7 @@ var EntityMap = class {
54321
54901
  result.name = this.getNameText(entity.getName(), entity.getTags());
54322
54902
  result.type = this.getType(entity.getType());
54323
54903
  result.containingPackage = this.getContainingPackageAndAccumulateIfMember(entity, result);
54904
+ result.details.isConst = entity.isConstant();
54324
54905
  result.details.isVariadicParameter = entity.subkind === "parameter" && entity.isVariadic();
54325
54906
  if (entity.subkind === "package") {
54326
54907
  result.isPackageMember = true;
@@ -54491,6 +55072,7 @@ var EntityMap = class {
54491
55072
  break;
54492
55073
  }
54493
55074
  case 5 /* Indexer */: {
55075
+ result.parameters = owningEntity.getValueParameters().map((p) => this.getVariableEntity(p));
54494
55076
  result.ifTypeMemberThenContainingType = this.getTypeOrExtensionEntity(
54495
55077
  owningEntity.getContainer().getEntity()
54496
55078
  );
@@ -54554,6 +55136,7 @@ var EntityMap = class {
54554
55136
  break;
54555
55137
  }
54556
55138
  case 5 /* Indexer */: {
55139
+ result.parameters = owningEntity.getValueParameters().map((p) => this.getVariableEntity(p));
54557
55140
  result.ifTypeMemberThenContainingType = this.getTypeOrExtensionEntity(
54558
55141
  owningEntity.getContainer().getEntity()
54559
55142
  );
@@ -54626,6 +55209,10 @@ var EntityMap = class {
54626
55209
  }).toArray();
54627
55210
  result.members = this.createTypeMembers(entity.getMembers());
54628
55211
  result.details.isDefaultExport = this.isDefaultExport(entity);
55212
+ result.details.implicitlyImplementedAbstractMembersByImplementingMember = Query.from(this._analyzer.getTypeMemberImplementationCheckResult(entity).implicitImplementations.flatMap((i) => this.createImplicitAbstractMemberImplementationInfo(
55213
+ i.abstractMember,
55214
+ i.implementingMember
55215
+ ))).groupByToMap((i) => i.implementingMember, (i) => i.abstractMember);
54629
55216
  }
54630
55217
  }
54631
55218
  return result;
@@ -54908,6 +55495,101 @@ var EntityMap = class {
54908
55495
  }
54909
55496
  return unaliased;
54910
55497
  }
55498
+ static {
55499
+ this.implicitImplementationMemberKindsMismatchErrorMessage = "\u0412\u0438\u0434 \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u0433\u043E \u0447\u043B\u0435\u043D\u0430 \u0442\u0438\u043F\u0430 \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0442\u044C \u0441 \u0432\u0438\u0434\u043E\u043C \u0447\u043B\u0435\u043D\u0430 \u0442\u0438\u043F\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0435\u0433\u043E \u043D\u0435\u044F\u0432\u043D\u043E \u0440\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442.";
55500
+ }
55501
+ createImplicitAbstractMemberImplementationInfo(abstractMember, implementingMember) {
55502
+ const abstractMemberEntity = abstractMember.getEntity();
55503
+ const implementingMemberEntity = implementingMember.getEntity();
55504
+ switch (abstractMemberEntity.kind) {
55505
+ case 0 /* Variable */: {
55506
+ Debug.assert(
55507
+ implementingMemberEntity.kind === 0 /* Variable */,
55508
+ _EntityMap.implicitImplementationMemberKindsMismatchErrorMessage
55509
+ );
55510
+ return {
55511
+ abstractMember: this.getVariableEntity(abstractMemberEntity),
55512
+ implementingMember: this.getVariableEntity(implementingMemberEntity)
55513
+ };
55514
+ }
55515
+ case 1 /* Function */: {
55516
+ Debug.assert(
55517
+ implementingMemberEntity.kind === 1 /* Function */,
55518
+ _EntityMap.implicitImplementationMemberKindsMismatchErrorMessage
55519
+ );
55520
+ return {
55521
+ abstractMember: this.getFunctionEntity(abstractMemberEntity),
55522
+ implementingMember: this.getFunctionEntity(implementingMemberEntity)
55523
+ };
55524
+ }
55525
+ case 9 /* Operator */: {
55526
+ Debug.assert(
55527
+ implementingMemberEntity.kind === 9 /* Operator */,
55528
+ _EntityMap.implicitImplementationMemberKindsMismatchErrorMessage
55529
+ );
55530
+ return {
55531
+ abstractMember: this.getOperatorEntity(abstractMemberEntity),
55532
+ implementingMember: this.getOperatorEntity(implementingMemberEntity)
55533
+ };
55534
+ }
55535
+ case 5 /* Indexer */: {
55536
+ Debug.assert(
55537
+ implementingMemberEntity.kind === 5 /* Indexer */,
55538
+ _EntityMap.implicitImplementationMemberKindsMismatchErrorMessage
55539
+ );
55540
+ const result = new Array();
55541
+ const abstractGetterEntity = abstractMemberEntity.getGetter();
55542
+ Debug.assertNotNull(abstractGetterEntity);
55543
+ const implementingGetterEntity = implementingMemberEntity.getGetter();
55544
+ Debug.assertNotNull(implementingGetterEntity);
55545
+ result.push({
55546
+ abstractMember: this.getGetterEntity(abstractGetterEntity),
55547
+ implementingMember: this.getGetterEntity(implementingGetterEntity)
55548
+ });
55549
+ const abstractSetterEntity = abstractMemberEntity.getSetter();
55550
+ if (abstractSetterEntity !== void 0) {
55551
+ const implementingSetterEntity = implementingMemberEntity.getSetter();
55552
+ Debug.assertNotNull(implementingSetterEntity);
55553
+ result.push({
55554
+ abstractMember: this.getSetterEntity(abstractSetterEntity),
55555
+ implementingMember: this.getSetterEntity(implementingSetterEntity)
55556
+ });
55557
+ }
55558
+ return result;
55559
+ }
55560
+ case 6 /* DereferenceOperator */: {
55561
+ Debug.assert(
55562
+ implementingMemberEntity.kind === 6 /* DereferenceOperator */,
55563
+ _EntityMap.implicitImplementationMemberKindsMismatchErrorMessage
55564
+ );
55565
+ const result = new Array();
55566
+ const abstractGetterEntity = abstractMemberEntity.getGetter();
55567
+ Debug.assertNotNull(abstractGetterEntity);
55568
+ const implementingGetterEntity = implementingMemberEntity.getGetter();
55569
+ Debug.assertNotNull(implementingGetterEntity);
55570
+ result.push({
55571
+ abstractMember: this.getGetterEntity(abstractGetterEntity),
55572
+ implementingMember: this.getGetterEntity(implementingGetterEntity)
55573
+ });
55574
+ const abstractSetterEntity = abstractMemberEntity.getSetter();
55575
+ if (abstractSetterEntity !== void 0) {
55576
+ const implementingSetterEntity = implementingMemberEntity.getSetter();
55577
+ Debug.assertNotNull(implementingSetterEntity);
55578
+ result.push({
55579
+ abstractMember: this.getSetterEntity(abstractSetterEntity),
55580
+ implementingMember: this.getSetterEntity(implementingSetterEntity)
55581
+ });
55582
+ }
55583
+ return result;
55584
+ }
55585
+ case 7 /* Constructor */:
55586
+ Debug.unreachable("\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u044B \u043D\u0435 \u043C\u043E\u0433\u0443 \u0438\u043C\u0435\u0442\u044C \u043D\u0435\u044F\u0432\u043D\u0443\u044E \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E.");
55587
+ case 8 /* Destructor */:
55588
+ Debug.unreachable("\u0414\u0435\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u044B \u043D\u0435 \u043C\u043E\u0433\u0443 \u0438\u043C\u0435\u0442\u044C \u043D\u0435\u044F\u0432\u043D\u0443\u044E \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E.");
55589
+ default:
55590
+ Debug.never(abstractMemberEntity);
55591
+ }
55592
+ }
54911
55593
  };
54912
55594
  var MappedVariableEntity = class {
54913
55595
  constructor(originalEntity) {
@@ -56434,6 +57116,8 @@ var GeneralLowering = class {
56434
57116
  const loweringContext = new GeneralLoweringContext(this._ectx);
56435
57117
  const compoundDeclarationsLowering = new CompoundDeclarationsAndOperatorsLowering(loweringContext);
56436
57118
  compoundDeclarationsLowering.lower(state);
57119
+ const implicitImplementationLowering = new ImplicitImplementationLowering(loweringContext);
57120
+ implicitImplementationLowering.lower(state);
56437
57121
  const basicTypeExtensionMembersLowering = new TypeExtensionBasicMembersLowering(loweringContext);
56438
57122
  basicTypeExtensionMembersLowering.lower(state);
56439
57123
  const aspectsLowering = new AspectsLowering(loweringContext);
@@ -56779,6 +57463,13 @@ var GeneralLoweringContext = class {
56779
57463
  return new VariableAccessExpression(AccessedVariable.fromEntity(symbolDeclaration), 0 /* Get */, void 0);
56780
57464
  }
56781
57465
  }
57466
+ isWriteableVariable(entity) {
57467
+ if (this.isComputedVariable(entity)) {
57468
+ return entity.setter !== void 0;
57469
+ } else {
57470
+ return !entity.details.isConst;
57471
+ }
57472
+ }
56782
57473
  isComputedVariable(entity) {
56783
57474
  return entity.getter !== void 0 || entity.setter !== void 0;
56784
57475
  }
@@ -56934,6 +57625,176 @@ var ExecutableCodeLowering = class {
56934
57625
  return this._ctx.createMemberAccessWithNullCheck(receiver, createMemberAccess, tempVariables, this._packageEntity);
56935
57626
  }
56936
57627
  };
57628
+ var ImplicitImplementationLowering = class {
57629
+ constructor(_ctx) {
57630
+ this._ctx = _ctx;
57631
+ }
57632
+ lower(state) {
57633
+ for (const declaration of state.enumerateDeclarations()) {
57634
+ if (declaration.kind === 24 /* PackageTypeDeclaration */) {
57635
+ const implicitImplementations = declaration.entity.details.implicitlyImplementedAbstractMembersByImplementingMember;
57636
+ if (implicitImplementations.size > 0) {
57637
+ const explicitImplementationDeclarations = new Array();
57638
+ for (const [implementingMember, implementedAbstractMembers] of implicitImplementations) {
57639
+ explicitImplementationDeclarations.push(this.createExplicitImplementation(
57640
+ implementingMember,
57641
+ implementedAbstractMembers,
57642
+ declaration.entity
57643
+ ));
57644
+ }
57645
+ declaration.members = declaration.members.concat(explicitImplementationDeclarations);
57646
+ declaration.entity.members = declaration.entity.members.concat(explicitImplementationDeclarations.map((d) => d.entity));
57647
+ }
57648
+ }
57649
+ }
57650
+ }
57651
+ createExplicitImplementation(implementingMember, implementedAbstractMembers, containingType) {
57652
+ switch (implementingMember.kind) {
57653
+ case "method": {
57654
+ Debug.assert(implementedAbstractMembers.every((m) => m.kind === "method"));
57655
+ return this.createExplicitMethodImplementation(implementingMember, implementedAbstractMembers, containingType);
57656
+ }
57657
+ case "variable": {
57658
+ Debug.assert(implementedAbstractMembers.every((m) => m.kind === "variable"));
57659
+ return this.createExplicitFieldImplementation(implementingMember, implementedAbstractMembers, containingType);
57660
+ }
57661
+ default:
57662
+ Debug.never(implementingMember);
57663
+ }
57664
+ }
57665
+ // method(p1, p2) {
57666
+ // return base.method(p1, p2)
57667
+ // }
57668
+ createExplicitMethodImplementation(implementingMethod, implementedAbstractMethods, containingType) {
57669
+ const parameterEntities = implementingMethod.parameters.map((p) => new IntrinsicVariableEntity(p.name, p.type, p.containingPackage));
57670
+ const methodEntity = new IntrinsicFunctionEntity(
57671
+ 0 /* RegularFunction */,
57672
+ implementingMethod.name,
57673
+ parameterEntities,
57674
+ implementingMethod.returnType,
57675
+ implementingMethod.containingPackage
57676
+ );
57677
+ methodEntity.ifTypeMemberThenContainingType = containingType;
57678
+ if (implementingMethod.details.hasComputedName !== void 0) {
57679
+ methodEntity.details.hasComputedName = { ...implementingMethod.details.hasComputedName };
57680
+ }
57681
+ methodEntity.details.overriddenMembers = [implementingMethod, ...implementedAbstractMethods];
57682
+ const parameterDeclarations = parameterEntities.map((e) => new ValueParameterDeclaration(
57683
+ e,
57684
+ void 0,
57685
+ false,
57686
+ void 0
57687
+ ));
57688
+ const methodAccess = new MethodAccessExpression(
57689
+ new BaseExpression3(void 0),
57690
+ false,
57691
+ AccessedFunction5.fromEntity(implementingMethod),
57692
+ true,
57693
+ void 0,
57694
+ void 0
57695
+ );
57696
+ const args = new OrderedArguments(parameterEntities.map((e) => VariableAccessExpression.get(e)), false);
57697
+ const methodCall = new CallExpression5(
57698
+ methodAccess,
57699
+ false,
57700
+ args,
57701
+ false,
57702
+ implementingMethod.returnType,
57703
+ void 0
57704
+ );
57705
+ const body = new BlockStatement([new ReturnStatement3(methodCall, void 0)], void 0);
57706
+ return new MethodDeclaration3(
57707
+ [],
57708
+ new Modifiers(),
57709
+ parameterDeclarations,
57710
+ body,
57711
+ methodEntity,
57712
+ false,
57713
+ void 0,
57714
+ void 0
57715
+ );
57716
+ }
57717
+ // get field() {
57718
+ // return super.field
57719
+ // }
57720
+ // set field(value) {
57721
+ // super.field = value
57722
+ // }
57723
+ createExplicitFieldImplementation(implementingField, implementedAbstractFields, containingType) {
57724
+ const fieldEntity = new IntrinsicVariableEntity(
57725
+ implementingField.name,
57726
+ implementingField.type,
57727
+ implementingField.containingPackage
57728
+ );
57729
+ fieldEntity.ifTypeMemberThenContainingType = containingType;
57730
+ if (implementingField.details.hasComputedName !== void 0) {
57731
+ fieldEntity.details.hasComputedName = { ...implementingField.details.hasComputedName };
57732
+ }
57733
+ fieldEntity.details.overriddenMembers = [implementingField, ...implementedAbstractFields];
57734
+ const getter = this.createRedirectingGetter(implementingField);
57735
+ let setter;
57736
+ if (this._ctx.isWriteableVariable(implementingField)) {
57737
+ setter = this.createRedirectingSetter(implementingField);
57738
+ }
57739
+ return new ComputedFieldDeclaration(fieldEntity, new Modifiers(), getter, setter, void 0, void 0);
57740
+ }
57741
+ // get field() {
57742
+ // return super.field
57743
+ // }
57744
+ createRedirectingGetter(targetFieldEntity) {
57745
+ const getterEntity = new IntrinsicFunctionEntity(
57746
+ 1 /* GetterOrSetter */,
57747
+ targetFieldEntity.name,
57748
+ [],
57749
+ targetFieldEntity.type,
57750
+ targetFieldEntity.containingPackage
57751
+ );
57752
+ const variableAccess = FieldAccessExpression.get(
57753
+ new BaseExpression3(void 0),
57754
+ false,
57755
+ targetFieldEntity,
57756
+ void 0,
57757
+ void 0
57758
+ );
57759
+ const body = new BlockStatement([new ReturnStatement3(variableAccess, void 0)], void 0);
57760
+ return new FieldGetterDeclaration3(getterEntity, [], body, void 0);
57761
+ }
57762
+ // set field(value) {
57763
+ // super.field = value
57764
+ // }
57765
+ createRedirectingSetter(targetFieldEntity) {
57766
+ const parameterEntity = new IntrinsicVariableEntity(
57767
+ EmitPhaseName.ofSetterParameter(targetFieldEntity.containingPackage.locale),
57768
+ targetFieldEntity.type,
57769
+ targetFieldEntity.containingPackage
57770
+ );
57771
+ const setterEntity = new IntrinsicFunctionEntity(
57772
+ 1 /* GetterOrSetter */,
57773
+ targetFieldEntity.name,
57774
+ [parameterEntity],
57775
+ this._ctx.ectx.standardTypes.none,
57776
+ targetFieldEntity.containingPackage
57777
+ );
57778
+ const variableAccess = FieldAccessExpression.set(
57779
+ new BaseExpression3(void 0),
57780
+ false,
57781
+ targetFieldEntity,
57782
+ void 0,
57783
+ void 0
57784
+ );
57785
+ const parameterAccess = VariableAccessExpression.get(parameterEntity);
57786
+ const variableAssignment = new AssignmentStatement3(
57787
+ variableAccess,
57788
+ 0 /* Equals */,
57789
+ parameterAccess,
57790
+ void 0,
57791
+ void 0,
57792
+ new AssignmentEmitOptions(false, false, false)
57793
+ );
57794
+ const body = new BlockStatement([variableAssignment], void 0);
57795
+ return new FieldSetterDeclaration3(setterEntity, [], body, parameterEntity, void 0);
57796
+ }
57797
+ };
56937
57798
  var CompoundDeclarationsAndOperatorsLowering = class {
56938
57799
  constructor(_ctx) {
56939
57800
  this._ctx = _ctx;
@@ -57340,7 +58201,10 @@ var AspectsLowering = class {
57340
58201
  affectsDerivedMembers: false
57341
58202
  };
57342
58203
  const getter = this.createRedirectingGetter(targetVariableEntity);
57343
- const setter = this.createRedirectingSetter(targetVariableEntity);
58204
+ let setter;
58205
+ if (this._ctx.isWriteableVariable(aspectVariableEntity)) {
58206
+ setter = this.createRedirectingSetter(targetVariableEntity);
58207
+ }
57344
58208
  return new ComputedFieldDeclaration(entity, new Modifiers(), getter, setter, void 0, void 0);
57345
58209
  }
57346
58210
  // get [Aspect_variable]() {
@@ -60253,12 +61117,11 @@ var IrBuilder = class {
60253
61117
  }
60254
61118
  }
60255
61119
  } else {
60256
- const isResultNone = this._analyzer.isFunctionResultNone(node);
60257
61120
  const expression = this.buildExpression(node.expressionOrStatementList);
60258
- if (isResultNone) {
60259
- statements = [new ExpressionStatement3(expression, this.getSourceLocation(node.expressionOrStatementList))];
60260
- } else {
61121
+ if (this._analyzer.isFunctionBlockWithImplicitlyReturnedExpression(node)) {
60261
61122
  statements = [new ReturnStatement3(expression, void 0)];
61123
+ } else {
61124
+ statements = [new ExpressionStatement3(expression, this.getSourceLocation(node.expressionOrStatementList))];
60262
61125
  }
60263
61126
  }
60264
61127
  return new BlockStatement(statements, this.getSourceLocation(node));
@@ -62156,9 +63019,9 @@ var IrBuilder = class {
62156
63019
  case "unresolved":
62157
63020
  throw new EmitterError("Invalid or unresolved type");
62158
63021
  case "union":
62159
- throw new EmitterError("Union type can not be used as accessed type.");
63022
+ throw new EmitterError("Union type cannot be used as accessed type.");
62160
63023
  case "intersection":
62161
- throw new EmitterError("Intersection type can not be used as accessed type.");
63024
+ throw new EmitterError("Intersection type cannot be used as accessed type.");
62162
63025
  default:
62163
63026
  Debug.never(type);
62164
63027
  }
@@ -64616,7 +65479,7 @@ var ImportDirectivesCreator = class {
64616
65479
  if (defaultImport === void 0) {
64617
65480
  defaultImport = EmitPhaseName.ofDefaultImport(this._locale, this._id++);
64618
65481
  } else if (specifiers.length !== 0) {
64619
- Logger.error("Cjs module can not contain both default and named exports.");
65482
+ Logger.error("Cjs module cannot contain both default and named exports.");
64620
65483
  }
64621
65484
  result = new CjsModuleImportDirectiveStatement(
64622
65485
  defaultImport,
@@ -64869,18 +65732,6 @@ export {
64869
65732
  DiagnosticData,
64870
65733
  DiagnosticKind,
64871
65734
  DiagnosticFlags,
64872
- getUnescapedTextFromTextToken,
64873
- unwrapParenthesizedExpressions,
64874
- getParentSkippingParenthesizedExpressions,
64875
- unaliasType,
64876
- getPackageContainingEntity,
64877
- findTag,
64878
- getRequiredTypeParameterCount,
64879
- flattenPackageMemberDeclarationList,
64880
- flattenTypeMemberDeclarationList,
64881
- isComputedVariableEntity,
64882
- EntityOrPackageNameTreeNode_entity,
64883
- EntityOrPackageNameTreeNode_node,
64884
65735
  Localization,
64885
65736
  Translation,
64886
65737
  LocalizedName,
@@ -65054,7 +65905,20 @@ export {
65054
65905
  isEntityWithTags,
65055
65906
  isTypeMemberEntity,
65056
65907
  TypeMemberEntity,
65908
+ EntityContext,
65057
65909
  entityToStringDecorator,
65910
+ getUnescapedTextFromTextToken,
65911
+ unwrapParenthesizedExpressions,
65912
+ getParentSkippingParenthesizedExpressions,
65913
+ unaliasType,
65914
+ getPackageContainingEntity,
65915
+ findTag,
65916
+ getRequiredTypeParameterCount,
65917
+ flattenPackageMemberDeclarationList,
65918
+ flattenTypeMemberDeclarationList,
65919
+ isComputedVariableEntity,
65920
+ EntityOrPackageNameTreeNode_entity,
65921
+ EntityOrPackageNameTreeNode_node,
65058
65922
  TagType,
65059
65923
  TagFunction,
65060
65924
  TagArgument_string,