@artel/artc 0.6.25249 → 0.6.25250

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 (34) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +2 -2
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +40 -24
  5. package/build/{chunk-G4UMALLG.js → chunk-DJEEXP7U.js} +621 -419
  6. package/build/{chunk-CBYKP5SE.js → chunk-VYUD26HA.js} +2 -2
  7. package/build/{chunk-6OPBY3SK.js → chunk-ZZKHAAAX.js} +1 -1
  8. package/build/types/analysis/Analyzer.d.ts +11 -10
  9. package/build/types/analysis/NodeTypeUtils.d.ts +1 -1
  10. package/build/types/analysis/TypeNarrower.d.ts +1 -1
  11. package/build/types/analysis/WellKnownDeclarations.d.ts +3 -3
  12. package/build/types/analysis/semantic-context/SemanticContextBuilder.d.ts +1 -1
  13. package/build/types/analysis/semantic-context/TranslationTextTemplateSemanticContext.d.ts +2 -2
  14. package/build/types/diagnostic/DiagnosticCode.d.ts +1 -1
  15. package/build/types/emitter/EmitterContext.d.ts +2 -2
  16. package/build/types/emitter/Entities.d.ts +1 -0
  17. package/build/types/emitter/EntityMap.d.ts +1 -0
  18. package/build/types/emitter/IrBuilder.d.ts +4 -1
  19. package/build/types/emitter/IrToJs.d.ts +1 -1
  20. package/build/types/emitter/Transformer.d.ts +4 -2
  21. package/build/types/emitter/ir/Nodes.d.ts +26 -5
  22. package/build/types/emitter/ir/types.d.ts +4 -4
  23. package/build/types/entities/VariableEntity.d.ts +2 -2
  24. package/build/types/services/DisplayService.d.ts +3 -3
  25. package/build/types/tree/KeywordKind.d.ts +1 -1
  26. package/build/types/tree/NodeKind.d.ts +5 -5
  27. package/build/types/tree/green/Nodes.d.ts +28 -28
  28. package/build/types/tree/green/SyntaxFactory.d.ts +1 -1
  29. package/build/types/tree/red/Nodes.d.ts +42 -42
  30. package/build/types/ts-interop/Entities.d.ts +0 -1
  31. package/build/types/ts-interop/TsInteropContext.d.ts +1 -1
  32. package/build/types/types/ParameterType.d.ts +3 -3
  33. package/build/types/types/StandardTypes.d.ts +2 -2
  34. package/package.json +1 -1
@@ -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.25249" : "";
623
+ var ArtelVersion = true ? "0.6.25250" : "";
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");
@@ -1186,10 +1186,14 @@ __export(green_exports, {
1186
1186
  SwitchStatement: () => SwitchStatement2,
1187
1187
  Tag: () => Tag2,
1188
1188
  TagList: () => TagList2,
1189
+ TextTemplateDeclaration: () => TextTemplateDeclaration2,
1190
+ TextTemplateDeclarationSpan: () => TextTemplateDeclarationSpan2,
1191
+ TextTemplateDeclarationSpanList: () => TextTemplateDeclarationSpanList2,
1189
1192
  TextTemplateLiteral: () => TextTemplateLiteral2,
1193
+ TextTemplateParameterDeclaration: () => TextTemplateParameterDeclaration2,
1190
1194
  TextTemplateSpan: () => TextTemplateSpan2,
1191
1195
  TextTemplateSpanList: () => TextTemplateSpanList2,
1192
- TextTranslation: () => TextTranslation2,
1196
+ TextTranslationDeclaration: () => TextTranslationDeclaration2,
1193
1197
  Token: () => Token6,
1194
1198
  TokenExpression: () => TokenExpression2,
1195
1199
  TokenFlags: () => TokenFlags2,
@@ -1197,10 +1201,6 @@ __export(green_exports, {
1197
1201
  TopLevelTranslationList: () => TopLevelTranslationList2,
1198
1202
  TranslationParameterClause: () => TranslationParameterClause2,
1199
1203
  TranslationParameterList: () => TranslationParameterList2,
1200
- TranslationTextTemplate: () => TranslationTextTemplate2,
1201
- TranslationTextTemplateParameterDeclaration: () => TranslationTextTemplateParameterDeclaration2,
1202
- TranslationTextTemplateSpan: () => TranslationTextTemplateSpan2,
1203
- TranslationTextTemplateSpanList: () => TranslationTextTemplateSpanList2,
1204
1204
  TranslationTypeParameterClause: () => TranslationTypeParameterClause2,
1205
1205
  TranslationTypeParameterList: () => TranslationTypeParameterList2,
1206
1206
  TranslationsDeclaration: () => TranslationsDeclaration2,
@@ -1294,7 +1294,7 @@ var KeywordKind = /* @__PURE__ */ ((KeywordKind5) => {
1294
1294
  KeywordKind5[KeywordKind5["Reference"] = 54] = "Reference";
1295
1295
  KeywordKind5[KeywordKind5["Translations"] = 55] = "Translations";
1296
1296
  KeywordKind5[KeywordKind5["Base"] = 56] = "Base";
1297
- KeywordKind5[KeywordKind5["None"] = 57] = "None";
1297
+ KeywordKind5[KeywordKind5["Null"] = 57] = "Null";
1298
1298
  KeywordKind5[KeywordKind5["Get"] = 58] = "Get";
1299
1299
  KeywordKind5[KeywordKind5["Set"] = 59] = "Set";
1300
1300
  return KeywordKind5;
@@ -1442,11 +1442,11 @@ var NodeKind = /* @__PURE__ */ ((NodeKind3) => {
1442
1442
  NodeKind3[NodeKind3["FieldOrVariantTranslation"] = 137] = "FieldOrVariantTranslation";
1443
1443
  NodeKind3[NodeKind3["TypeMemberTranslationList"] = 138] = "TypeMemberTranslationList";
1444
1444
  NodeKind3[NodeKind3["TypeTranslation"] = 139] = "TypeTranslation";
1445
- NodeKind3[NodeKind3["TextTranslation"] = 140] = "TextTranslation";
1446
- NodeKind3[NodeKind3["TranslationTextTemplate"] = 141] = "TranslationTextTemplate";
1447
- NodeKind3[NodeKind3["TranslationTextTemplateSpanList"] = 142] = "TranslationTextTemplateSpanList";
1448
- NodeKind3[NodeKind3["TranslationTextTemplateSpan"] = 143] = "TranslationTextTemplateSpan";
1449
- NodeKind3[NodeKind3["TranslationTextTemplateParameterDeclaration"] = 144] = "TranslationTextTemplateParameterDeclaration";
1445
+ NodeKind3[NodeKind3["TextTranslationDeclaration"] = 140] = "TextTranslationDeclaration";
1446
+ NodeKind3[NodeKind3["TextTemplateDeclaration"] = 141] = "TextTemplateDeclaration";
1447
+ NodeKind3[NodeKind3["TextTemplateDeclarationSpanList"] = 142] = "TextTemplateDeclarationSpanList";
1448
+ NodeKind3[NodeKind3["TextTemplateDeclarationSpan"] = 143] = "TextTemplateDeclarationSpan";
1449
+ NodeKind3[NodeKind3["TextTemplateParameterDeclaration"] = 144] = "TextTemplateParameterDeclaration";
1450
1450
  NodeKind3[NodeKind3["VariantDeclaration"] = 145] = "VariantDeclaration";
1451
1451
  NodeKind3[NodeKind3["TypeParameterDeclaration"] = 146] = "TypeParameterDeclaration";
1452
1452
  NodeKind3[NodeKind3["ParameterDeclaration"] = 147] = "ParameterDeclaration";
@@ -1846,10 +1846,14 @@ __export(tree_exports, {
1846
1846
  SwitchStatement: () => SwitchStatement,
1847
1847
  Tag: () => Tag,
1848
1848
  TagList: () => TagList,
1849
+ TextTemplateDeclaration: () => TextTemplateDeclaration,
1850
+ TextTemplateDeclarationSpan: () => TextTemplateDeclarationSpan,
1851
+ TextTemplateDeclarationSpanList: () => TextTemplateDeclarationSpanList,
1849
1852
  TextTemplateLiteral: () => TextTemplateLiteral,
1853
+ TextTemplateParameterDeclaration: () => TextTemplateParameterDeclaration,
1850
1854
  TextTemplateSpan: () => TextTemplateSpan,
1851
1855
  TextTemplateSpanList: () => TextTemplateSpanList,
1852
- TextTranslation: () => TextTranslation,
1856
+ TextTranslationDeclaration: () => TextTranslationDeclaration,
1853
1857
  Token: () => Token4,
1854
1858
  TokenExpression: () => TokenExpression,
1855
1859
  TokenFlags: () => TokenFlags2,
@@ -1857,10 +1861,6 @@ __export(tree_exports, {
1857
1861
  TopLevelTranslationList: () => TopLevelTranslationList,
1858
1862
  TranslationParameterClause: () => TranslationParameterClause,
1859
1863
  TranslationParameterList: () => TranslationParameterList,
1860
- TranslationTextTemplate: () => TranslationTextTemplate,
1861
- TranslationTextTemplateParameterDeclaration: () => TranslationTextTemplateParameterDeclaration,
1862
- TranslationTextTemplateSpan: () => TranslationTextTemplateSpan,
1863
- TranslationTextTemplateSpanList: () => TranslationTextTemplateSpanList,
1864
1864
  TranslationTypeParameterClause: () => TranslationTypeParameterClause,
1865
1865
  TranslationTypeParameterList: () => TranslationTypeParameterList,
1866
1866
  TranslationsDeclaration: () => TranslationsDeclaration,
@@ -2095,7 +2095,7 @@ var englishKeywords = new Lazy(() => [
2095
2095
  { keyword: "loop", kind: 26 /* Loop */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2096
2096
  { keyword: "no", kind: 53 /* No */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2097
2097
  { keyword: "not", kind: 43 /* Not */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2098
- { keyword: "none", kind: 57 /* None */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2098
+ { keyword: "null", kind: 57 /* Null */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2099
2099
  { keyword: "object", kind: 4 /* Object */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2100
2100
  { keyword: "operation", kind: 12 /* Function */, dialects: [2 /* ArtelM */] },
2101
2101
  { keyword: "or", kind: 23 /* Or */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
@@ -2168,7 +2168,7 @@ var russianKeywords = new Lazy(() => [
2168
2168
  { keyword: "\u043F\u043E\u043F\u044B\u0442\u043A\u0430", kind: 8 /* Try */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2169
2169
  { keyword: "\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u0446\u0438\u043A\u043B", kind: 33 /* BreakLoop */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2170
2170
  { keyword: "\u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442", kind: 5 /* PlainObject */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2171
- { keyword: "\u043F\u0443\u0441\u0442\u043E", kind: 57 /* None */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2171
+ { keyword: "\u043F\u0443\u0441\u0442\u043E", kind: 57 /* Null */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2172
2172
  { keyword: "\u043F\u0443\u0441\u0442\u044C", kind: 1 /* Let */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2173
2173
  { keyword: "\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0446\u0438\u043A\u043B", kind: 34 /* ContinueLoop */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
2174
2174
  { keyword: "\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435", kind: 31 /* Creation */, dialects: [1 /* ArtelA */, 2 /* ArtelM */] },
@@ -4077,7 +4077,7 @@ var TreeQuery = class {
4077
4077
  return analyzer.entity.ofDereferencedVariableSetterDeclaration(parent);
4078
4078
  case 51 /* OperatorDeclaration */:
4079
4079
  return analyzer.entity.ofOperatorDeclaration(parent);
4080
- case 144 /* TranslationTextTemplateParameterDeclaration */:
4080
+ case 144 /* TextTemplateParameterDeclaration */:
4081
4081
  return analyzer.entity.ofTranslationTextTemplateParameterDeclaration(parent);
4082
4082
  default:
4083
4083
  Debug.typeIsAssignableTo();
@@ -8474,10 +8474,10 @@ var TypeTranslation = class extends BaseNode {
8474
8474
  ];
8475
8475
  }
8476
8476
  };
8477
- var TextTranslation = class extends BaseNode {
8477
+ var TextTranslationDeclaration = class extends BaseNode {
8478
8478
  constructor(green, rangeStart, parent) {
8479
8479
  super(green, rangeStart, parent);
8480
- this.kind = 140 /* TextTranslation */;
8480
+ this.kind = 140 /* TextTranslationDeclaration */;
8481
8481
  }
8482
8482
  get children() {
8483
8483
  return this._children ??= this.createChildren();
@@ -8502,10 +8502,10 @@ var TextTranslation = class extends BaseNode {
8502
8502
  ];
8503
8503
  }
8504
8504
  };
8505
- var TranslationTextTemplate = class extends BaseNode {
8505
+ var TextTemplateDeclaration = class extends BaseNode {
8506
8506
  constructor(green, rangeStart, parent) {
8507
8507
  super(green, rangeStart, parent);
8508
- this.kind = 141 /* TranslationTextTemplate */;
8508
+ this.kind = 141 /* TextTemplateDeclaration */;
8509
8509
  }
8510
8510
  get children() {
8511
8511
  return this._children ??= this.createChildren();
@@ -8526,10 +8526,10 @@ var TranslationTextTemplate = class extends BaseNode {
8526
8526
  ];
8527
8527
  }
8528
8528
  };
8529
- var TranslationTextTemplateSpanList = class extends BaseNode {
8529
+ var TextTemplateDeclarationSpanList = class extends BaseNode {
8530
8530
  constructor(green, rangeStart, parent) {
8531
8531
  super(green, rangeStart, parent);
8532
- this.kind = 142 /* TranslationTextTemplateSpanList */;
8532
+ this.kind = 142 /* TextTemplateDeclarationSpanList */;
8533
8533
  }
8534
8534
  get children() {
8535
8535
  return this._children ??= this.createChildren();
@@ -8544,10 +8544,10 @@ var TranslationTextTemplateSpanList = class extends BaseNode {
8544
8544
  return this.green.spans.map((e, i) => e.toRed(childRangeStart(this, i), this));
8545
8545
  }
8546
8546
  };
8547
- var TranslationTextTemplateSpan = class extends BaseNode {
8547
+ var TextTemplateDeclarationSpan = class extends BaseNode {
8548
8548
  constructor(green, rangeStart, parent) {
8549
8549
  super(green, rangeStart, parent);
8550
- this.kind = 143 /* TranslationTextTemplateSpan */;
8550
+ this.kind = 143 /* TextTemplateDeclarationSpan */;
8551
8551
  }
8552
8552
  get children() {
8553
8553
  return this._children ??= this.createChildren();
@@ -8568,10 +8568,10 @@ var TranslationTextTemplateSpan = class extends BaseNode {
8568
8568
  ];
8569
8569
  }
8570
8570
  };
8571
- var TranslationTextTemplateParameterDeclaration = class extends BaseNode {
8571
+ var TextTemplateParameterDeclaration = class extends BaseNode {
8572
8572
  constructor(green, rangeStart, parent) {
8573
8573
  super(green, rangeStart, parent);
8574
- this.kind = 144 /* TranslationTextTemplateParameterDeclaration */;
8574
+ this.kind = 144 /* TextTemplateParameterDeclaration */;
8575
8575
  }
8576
8576
  get children() {
8577
8577
  return this._children ??= this.createChildren();
@@ -12206,10 +12206,10 @@ var TypeTranslation2 = class extends BaseNode2 {
12206
12206
  return new TypeTranslation(this, rangeStart, parent);
12207
12207
  }
12208
12208
  };
12209
- var TextTranslation2 = class extends BaseNode2 {
12209
+ var TextTranslationDeclaration2 = class extends BaseNode2 {
12210
12210
  constructor(sourceText, minusGreaterThanToken, translatedTextOrTranslationFunction) {
12211
12211
  super();
12212
- this.kind = 140 /* TextTranslation */;
12212
+ this.kind = 140 /* TextTranslationDeclaration */;
12213
12213
  this.children = [sourceText, minusGreaterThanToken, translatedTextOrTranslationFunction];
12214
12214
  }
12215
12215
  get sourceText() {
@@ -12225,13 +12225,13 @@ var TextTranslation2 = class extends BaseNode2 {
12225
12225
  return this;
12226
12226
  }
12227
12227
  toRed(rangeStart, parent) {
12228
- return new TextTranslation(this, rangeStart, parent);
12228
+ return new TextTranslationDeclaration(this, rangeStart, parent);
12229
12229
  }
12230
12230
  };
12231
- var TranslationTextTemplate2 = class extends BaseNode2 {
12231
+ var TextTemplateDeclaration2 = class extends BaseNode2 {
12232
12232
  constructor(head, spanList) {
12233
12233
  super();
12234
- this.kind = 141 /* TranslationTextTemplate */;
12234
+ this.kind = 141 /* TextTemplateDeclaration */;
12235
12235
  this.children = [head, spanList];
12236
12236
  }
12237
12237
  get head() {
@@ -12244,13 +12244,13 @@ var TranslationTextTemplate2 = class extends BaseNode2 {
12244
12244
  return this;
12245
12245
  }
12246
12246
  toRed(rangeStart, parent) {
12247
- return new TranslationTextTemplate(this, rangeStart, parent);
12247
+ return new TextTemplateDeclaration(this, rangeStart, parent);
12248
12248
  }
12249
12249
  };
12250
- var TranslationTextTemplateSpanList2 = class extends BaseNode2 {
12250
+ var TextTemplateDeclarationSpanList2 = class extends BaseNode2 {
12251
12251
  constructor(spans) {
12252
12252
  super();
12253
- this.kind = 142 /* TranslationTextTemplateSpanList */;
12253
+ this.kind = 142 /* TextTemplateDeclarationSpanList */;
12254
12254
  this.children = spans;
12255
12255
  }
12256
12256
  get spans() {
@@ -12260,13 +12260,13 @@ var TranslationTextTemplateSpanList2 = class extends BaseNode2 {
12260
12260
  return this;
12261
12261
  }
12262
12262
  toRed(rangeStart, parent) {
12263
- return new TranslationTextTemplateSpanList(this, rangeStart, parent);
12263
+ return new TextTemplateDeclarationSpanList(this, rangeStart, parent);
12264
12264
  }
12265
12265
  };
12266
- var TranslationTextTemplateSpan2 = class extends BaseNode2 {
12266
+ var TextTemplateDeclarationSpan2 = class extends BaseNode2 {
12267
12267
  constructor(parameter, text) {
12268
12268
  super();
12269
- this.kind = 143 /* TranslationTextTemplateSpan */;
12269
+ this.kind = 143 /* TextTemplateDeclarationSpan */;
12270
12270
  this.children = [parameter, text];
12271
12271
  }
12272
12272
  get parameter() {
@@ -12279,13 +12279,13 @@ var TranslationTextTemplateSpan2 = class extends BaseNode2 {
12279
12279
  return this;
12280
12280
  }
12281
12281
  toRed(rangeStart, parent) {
12282
- return new TranslationTextTemplateSpan(this, rangeStart, parent);
12282
+ return new TextTemplateDeclarationSpan(this, rangeStart, parent);
12283
12283
  }
12284
12284
  };
12285
- var TranslationTextTemplateParameterDeclaration2 = class extends BaseNode2 {
12285
+ var TextTemplateParameterDeclaration2 = class extends BaseNode2 {
12286
12286
  constructor(name, typeAnnotation) {
12287
12287
  super();
12288
- this.kind = 144 /* TranslationTextTemplateParameterDeclaration */;
12288
+ this.kind = 144 /* TextTemplateParameterDeclaration */;
12289
12289
  this.children = [name, typeAnnotation];
12290
12290
  }
12291
12291
  get name() {
@@ -12298,7 +12298,7 @@ var TranslationTextTemplateParameterDeclaration2 = class extends BaseNode2 {
12298
12298
  return this;
12299
12299
  }
12300
12300
  toRed(rangeStart, parent) {
12301
- return new TranslationTextTemplateParameterDeclaration(this, rangeStart, parent);
12301
+ return new TextTemplateParameterDeclaration(this, rangeStart, parent);
12302
12302
  }
12303
12303
  };
12304
12304
  var VariantDeclaration2 = class extends BaseNode2 {
@@ -12877,7 +12877,7 @@ var DiagnosticCode = /* @__PURE__ */ ((DiagnosticCode2) => {
12877
12877
  DiagnosticCode2[DiagnosticCode2["TagNotFound"] = 284] = "TagNotFound";
12878
12878
  DiagnosticCode2[DiagnosticCode2["TypeOrFunctionNameExpected"] = 285] = "TypeOrFunctionNameExpected";
12879
12879
  DiagnosticCode2[DiagnosticCode2["PackageNameOrAliasExpected"] = 286] = "PackageNameOrAliasExpected";
12880
- DiagnosticCode2[DiagnosticCode2["ExpressionCanBeNone"] = 287] = "ExpressionCanBeNone";
12880
+ DiagnosticCode2[DiagnosticCode2["ExpressionCanBeNull"] = 287] = "ExpressionCanBeNull";
12881
12881
  DiagnosticCode2[DiagnosticCode2["TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator"] = 288] = "TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator";
12882
12882
  DiagnosticCode2[DiagnosticCode2["UnreachableCode"] = 289] = "UnreachableCode";
12883
12883
  DiagnosticCode2[DiagnosticCode2["RecursionOccurredWhileCalculatingTheTypeOfTheExpression"] = 290] = "RecursionOccurredWhileCalculatingTheTypeOfTheExpression";
@@ -13134,8 +13134,8 @@ var englishErrorMessages = {
13134
13134
  [284 /* TagNotFound */]: "Tag not found.",
13135
13135
  [285 /* TypeOrFunctionNameExpected */]: "Type or function name expected.",
13136
13136
  [286 /* PackageNameOrAliasExpected */]: "Package name or alias expected.",
13137
- [287 /* ExpressionCanBeNone */]: "Expression can be none.",
13138
- [288 /* TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator */]: "Target variable expression in the assignment statement cannot contain '?' operator used to check for 'none' value.",
13137
+ [287 /* ExpressionCanBeNull */]: "Expression can be null.",
13138
+ [288 /* TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator */]: "Target variable expression in the assignment statement cannot contain '?' operator used to check for 'null' value.",
13139
13139
  [289 /* UnreachableCode */]: "Unreachable code.",
13140
13140
  [290 /* RecursionOccurredWhileCalculatingTheTypeOfTheExpression */]: "Recursion occurred while calculating the type of the expression. To fix this error, specify the type of the variable explicitly.",
13141
13141
  [291 /* RecursionOccurredWhileInferringTheTypeOfTheVariable */]: "Recursion occurred while inferring the type of the variable. To fix this error, specify the type of the variable explicitly.",
@@ -13344,7 +13344,7 @@ var russianErrorMessages = {
13344
13344
  [284 /* TagNotFound */]: "\u0422\u0435\u0433 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D.",
13345
13345
  [285 /* TypeOrFunctionNameExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u0438\u043C\u044F \u0442\u0438\u043F\u0430 \u0438\u043B\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438.",
13346
13346
  [286 /* PackageNameOrAliasExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u0438\u043C\u044F \u0438\u043B\u0438 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C \u043F\u0430\u043A\u0435\u0442\u0430.",
13347
- [287 /* ExpressionCanBeNone */]: "\u0412\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0436\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '\u043F\u0443\u0441\u0442\u043E'.",
13347
+ [287 /* ExpressionCanBeNull */]: "\u0412\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0436\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '\u043F\u0443\u0441\u0442\u043E'.",
13348
13348
  [288 /* TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator */]: "\u0412\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0435 \u043F\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043D\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0437\u043D\u0430\u043A \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 '?' \u0434\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043D\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '\u043F\u0443\u0441\u0442\u043E'.",
13349
13349
  [289 /* UnreachableCode */]: "\u041D\u0435\u0434\u043E\u0441\u0442\u0438\u0436\u0438\u043C\u044B\u0439 \u043A\u043E\u0434.",
13350
13350
  [290 /* RecursionOccurredWhileCalculatingTheTypeOfTheExpression */]: "\u041F\u0440\u0438 \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0438 \u0442\u0438\u043F\u0430 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u0440\u0435\u043A\u0443\u0440\u0441\u0438\u044F. \u0427\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u044D\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0443, \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u044F\u0432\u043D\u043E\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u0435 \u0442\u0438\u043F\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439.",
@@ -13713,7 +13713,7 @@ var DisplayService = class {
13713
13713
  const returnType = type.getReturnType();
13714
13714
  let returnTypeAnnotationColon = "";
13715
13715
  let returnTypeText = "";
13716
- if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.none)) {
13716
+ if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
13717
13717
  returnTypeAnnotationColon = ": ";
13718
13718
  returnTypeText = this.displayType(returnType);
13719
13719
  }
@@ -13787,7 +13787,7 @@ var DisplayService = class {
13787
13787
  const returnType = func.getReturnType();
13788
13788
  let returnTypeAnnotationColon = "";
13789
13789
  let returnTypeText = "";
13790
- if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.none)) {
13790
+ if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
13791
13791
  returnTypeAnnotationColon = ": ";
13792
13792
  returnTypeText = this.displayType(returnType);
13793
13793
  }
@@ -13826,7 +13826,7 @@ var DisplayService = class {
13826
13826
  const returnType = operator.getReturnType();
13827
13827
  let returnTypeAnnotationColon = "";
13828
13828
  let returnTypeText = "";
13829
- if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.none)) {
13829
+ if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
13830
13830
  returnTypeAnnotationColon = ": ";
13831
13831
  returnTypeText = this.displayType(returnType);
13832
13832
  }
@@ -13957,7 +13957,7 @@ var DisplayService = class {
13957
13957
  const functionKeyword = this.displayKeyword(12 /* Function */);
13958
13958
  const valueParametersText = `(${type.value.getValueParameters().map((p) => this.displayValueParameterDeclaration(p)).join(", ")})`;
13959
13959
  const returnType = type.value.getReturnType();
13960
- const returnTypeText = this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.none) ? `: ${this.displayType(returnType)}` : "";
13960
+ const returnTypeText = this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.nullType) ? `: ${this.displayType(returnType)}` : "";
13961
13961
  typeBody = `${asyncKeyword}${functionKeyword}${valueParametersText}${returnTypeText}`;
13962
13962
  break;
13963
13963
  }
@@ -14289,7 +14289,7 @@ var DisplayService = class {
14289
14289
  const valueParametersText = type.getValueParameters().map((p) => this.displayValueParameterDeclaration(p, lessDetailsTypeDisplayOptions)).join(", ");
14290
14290
  let returnTypeText = "";
14291
14291
  const returnType = type.getReturnType();
14292
- if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.none)) {
14292
+ if (this._analyzer === void 0 || !returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
14293
14293
  returnTypeText += `: ${this.displayTypeInternal(returnType, lessDetailsTypeDisplayOptions)}`;
14294
14294
  }
14295
14295
  if (namedTypeEntity !== void 0) {
@@ -14301,7 +14301,7 @@ var DisplayService = class {
14301
14301
  }
14302
14302
  displayParameterTypeUsage(type) {
14303
14303
  const name = this.displayEntityNameText(type.getEntity());
14304
- const nonNullableText = type.isNoneExcluded() ? "!" : "";
14304
+ const nonNullableText = type.isNullExcluded() ? "!" : "";
14305
14305
  return `${name}${nonNullableText}`;
14306
14306
  }
14307
14307
  displayAliasTypeUsage(type, options) {
@@ -14385,12 +14385,12 @@ var DisplayService = class {
14385
14385
  }
14386
14386
  displayUnionOrIntersectionTypeTypes(types, isUnion) {
14387
14387
  if (this._analyzer !== void 0 && isUnion && types.length === 2) {
14388
- let noneTypeIndex = -1;
14388
+ let nullTypeIndex = -1;
14389
14389
  if (this._analyzer !== void 0) {
14390
- noneTypeIndex = types.findIndex((t) => t.equals(this._analyzer.originalStandardTypes.none));
14390
+ nullTypeIndex = types.findIndex((t) => t.equals(this._analyzer.originalStandardTypes.nullType));
14391
14391
  }
14392
- if (noneTypeIndex >= 0) {
14393
- const type = noneTypeIndex === 0 ? types[1] : types[0];
14392
+ if (nullTypeIndex >= 0) {
14393
+ const type = nullTypeIndex === 0 ? types[1] : types[0];
14394
14394
  const options = {
14395
14395
  displayFullVersionOfNamedFunctionType: true,
14396
14396
  unionAndAliasTypeDisplayKind: 1 /* OnlyOriginalType */,
@@ -15432,8 +15432,8 @@ var ParameterTypeUsage_type = class {
15432
15432
  getEntity() {
15433
15433
  return this.type.getEntity();
15434
15434
  }
15435
- isNoneExcluded() {
15436
- return this.type.isNoneExcluded;
15435
+ isNullExcluded() {
15436
+ return this.type.isNullExcluded;
15437
15437
  }
15438
15438
  };
15439
15439
  var ParameterTypeUsage_entity = class {
@@ -15444,7 +15444,7 @@ var ParameterTypeUsage_entity = class {
15444
15444
  getEntity() {
15445
15445
  return this.entity;
15446
15446
  }
15447
- isNoneExcluded() {
15447
+ isNullExcluded() {
15448
15448
  return false;
15449
15449
  }
15450
15450
  };
@@ -19598,9 +19598,9 @@ var ExpressionParser = class {
19598
19598
  return result;
19599
19599
  }
19600
19600
  parseExpression(isFollowedByStatementBlock) {
19601
- return this.parseNoneCoalescingExpression(isFollowedByStatementBlock);
19601
+ return this.parseNullCoalescingExpression(isFollowedByStatementBlock);
19602
19602
  }
19603
- parseNoneCoalescingExpression(isFollowedByStatementBlock) {
19603
+ parseNullCoalescingExpression(isFollowedByStatementBlock) {
19604
19604
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
19605
19605
  let result = this.parseDisjunctiveExpression(isFollowedByStatementBlock);
19606
19606
  while (this.parser.currentTokenOrKeyword.isToken(51 /* QuestionQuestion */)) {
@@ -19883,7 +19883,7 @@ var ExpressionParser = class {
19883
19883
  break;
19884
19884
  case 52 /* Yes */:
19885
19885
  case 53 /* No */:
19886
- case 57 /* None */:
19886
+ case 57 /* Null */:
19887
19887
  case 4 /* Object */:
19888
19888
  case 56 /* Base */:
19889
19889
  case 54 /* Reference */:
@@ -19936,7 +19936,7 @@ var ExpressionParser = class {
19936
19936
  break;
19937
19937
  case 52 /* Yes */:
19938
19938
  case 53 /* No */:
19939
- case 57 /* None */: {
19939
+ case 57 /* Null */: {
19940
19940
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
19941
19941
  const keyword = this.parser.parseTokenOrKeyword().asKeyword();
19942
19942
  const expression = new KeywordExpression2(keyword);
@@ -20083,35 +20083,6 @@ var ExpressionParser = class {
20083
20083
  }
20084
20084
  return result;
20085
20085
  }
20086
- parseTranslationTextTemplate() {
20087
- const literalStart = this.parser.tokenOrKeywordStartPosition();
20088
- const head = this.parser.parseExpectedToken(7 /* TextTemplateHead */);
20089
- const spanListStart = this.parser.tokenOrKeywordStartPosition();
20090
- const spans = new Array();
20091
- if (!head.isMissing) {
20092
- let span;
20093
- do {
20094
- const spanStart = this.parser.tokenOrKeywordStartPosition();
20095
- const parameter = this.parseTranslationTextTemplateParameter();
20096
- const text = this.parseTextTemplatePartOrTail();
20097
- span = this.parser.intern(new TranslationTextTemplateSpan2(parameter, text), spanStart);
20098
- spans.push(span);
20099
- } while (span.text.tokenKind === 8 /* TextTemplatePart */);
20100
- }
20101
- const spanList = this.parser.intern(new TranslationTextTemplateSpanList2(spans), spanListStart);
20102
- const result = new TranslationTextTemplate2(head, spanList);
20103
- return this.parser.intern(result, literalStart);
20104
- }
20105
- parseTranslationTextTemplateParameter() {
20106
- const parameterStart = this.parser.tokenOrKeywordStartPosition();
20107
- const name = this.parser.parseIdentifier(4 /* Other */);
20108
- let typeAnnotation;
20109
- if (this.parser.typeAnnotationParser.isStartOfTypeAnnotation()) {
20110
- typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
20111
- }
20112
- const result = new TranslationTextTemplateParameterDeclaration2(name, typeAnnotation);
20113
- return this.parser.intern(result, parameterStart);
20114
- }
20115
20086
  parseFunctionBlockLiteral() {
20116
20087
  const functionBlockLiteralStart = this.parser.tokenOrKeywordStartPosition();
20117
20088
  const block = this.parser.statementParser.parseFunctionBlock();
@@ -21169,7 +21140,7 @@ var TranslationsDeclarationParser = class {
21169
21140
  return () => this.parsePackageVariableTranslation();
21170
21141
  case 6 /* TextLiteral */:
21171
21142
  case 7 /* TextTemplateHead */:
21172
- return () => this.parseTextTranslation();
21143
+ return () => this.parseTextTranslationDeclaration();
21173
21144
  }
21174
21145
  } else {
21175
21146
  switch (this.parser.currentTokenOrKeyword.keywordKind) {
@@ -21386,13 +21357,13 @@ var TranslationsDeclarationParser = class {
21386
21357
  );
21387
21358
  return this.parser.intern(result, translationStart);
21388
21359
  }
21389
- parseTextTranslation() {
21360
+ parseTextTranslationDeclaration() {
21390
21361
  const translationStart = this.parser.tokenOrKeywordStartPosition();
21391
21362
  let sourceText;
21392
21363
  if (this.parser.currentTokenOrKeyword.isToken(6 /* TextLiteral */)) {
21393
21364
  sourceText = this.parser.parseExpectedToken(6 /* TextLiteral */);
21394
21365
  } else {
21395
- sourceText = this.parser.expressionParser.parseTranslationTextTemplate();
21366
+ sourceText = this.parseTextTemplateDeclaration();
21396
21367
  }
21397
21368
  const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
21398
21369
  let translatedTextOrTranslationFunction;
@@ -21420,13 +21391,42 @@ var TranslationsDeclarationParser = class {
21420
21391
  133 /* TranslatedTextTemplateOrTranslationFunctionBlockExpected */
21421
21392
  );
21422
21393
  }
21423
- const result = new TextTranslation2(
21394
+ const result = new TextTranslationDeclaration2(
21424
21395
  sourceText,
21425
21396
  minusGreaterThanToken,
21426
21397
  translatedTextOrTranslationFunction
21427
21398
  );
21428
21399
  return this.parser.intern(result, translationStart);
21429
21400
  }
21401
+ parseTextTemplateDeclaration() {
21402
+ const literalStart = this.parser.tokenOrKeywordStartPosition();
21403
+ const head = this.parser.parseExpectedToken(7 /* TextTemplateHead */);
21404
+ const spanListStart = this.parser.tokenOrKeywordStartPosition();
21405
+ const spans = new Array();
21406
+ if (!head.isMissing) {
21407
+ let span;
21408
+ do {
21409
+ const spanStart = this.parser.tokenOrKeywordStartPosition();
21410
+ const parameter = this.parseTextTemplateParameterDeclaration();
21411
+ const text = this.parser.expressionParser.parseTextTemplatePartOrTail();
21412
+ span = this.parser.intern(new TextTemplateDeclarationSpan2(parameter, text), spanStart);
21413
+ spans.push(span);
21414
+ } while (span.text.tokenKind === 8 /* TextTemplatePart */);
21415
+ }
21416
+ const spanList = this.parser.intern(new TextTemplateDeclarationSpanList2(spans), spanListStart);
21417
+ const result = new TextTemplateDeclaration2(head, spanList);
21418
+ return this.parser.intern(result, literalStart);
21419
+ }
21420
+ parseTextTemplateParameterDeclaration() {
21421
+ const parameterStart = this.parser.tokenOrKeywordStartPosition();
21422
+ const name = this.parser.parseIdentifier(4 /* Other */);
21423
+ let typeAnnotation;
21424
+ if (this.parser.typeAnnotationParser.isStartOfTypeAnnotation()) {
21425
+ typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
21426
+ }
21427
+ const result = new TextTemplateParameterDeclaration2(name, typeAnnotation);
21428
+ return this.parser.intern(result, parameterStart);
21429
+ }
21430
21430
  };
21431
21431
  var TypeSpecifierParser = class {
21432
21432
  constructor(parser2) {
@@ -23007,6 +23007,44 @@ var TypeMemberLookupBase = class {
23007
23007
  }
23008
23008
  return result;
23009
23009
  }
23010
+ tryGetTypeLocale(type) {
23011
+ switch (type.kind) {
23012
+ case "function":
23013
+ return type.getEntity().getLocalization().locale;
23014
+ case "structured":
23015
+ return type.getEntity().getLocalization().locale;
23016
+ case "variant":
23017
+ return type.getEntity().getLocalization().locale;
23018
+ case "alias":
23019
+ return type.getEntity().getLocalization().locale;
23020
+ case "parameter":
23021
+ return type.getEntity().getLocalization().locale;
23022
+ case "unresolved":
23023
+ return void 0;
23024
+ case "union":
23025
+ case "intersection": {
23026
+ const constituentTypes = type.originalTypes;
23027
+ if (constituentTypes.length === 0) {
23028
+ return void 0;
23029
+ }
23030
+ let firstTypeLocale;
23031
+ for (let i = 0; i < constituentTypes.length; i++) {
23032
+ if (i === 0) {
23033
+ firstTypeLocale = this.tryGetTypeLocale(constituentTypes[i]);
23034
+ if (firstTypeLocale === void 0) {
23035
+ break;
23036
+ }
23037
+ } else if (this.tryGetTypeLocale(constituentTypes[i]) !== firstTypeLocale) {
23038
+ firstTypeLocale = void 0;
23039
+ break;
23040
+ }
23041
+ }
23042
+ return firstTypeLocale;
23043
+ }
23044
+ default:
23045
+ Debug.never(type);
23046
+ }
23047
+ }
23010
23048
  getAllMembersOfTypeOrExtension(typeOrExtension, options, hidingMatcher, typeExtensionLookup) {
23011
23049
  switch (typeOrExtension.kind) {
23012
23050
  case "type":
@@ -23022,8 +23060,9 @@ var TypeMemberLookupBase = class {
23022
23060
  const state = new TypeMemberLookupState();
23023
23061
  let result = this.getAllMembersOfType(type, options, state, hidingMatcher, typeExtensionLookup);
23024
23062
  if (state.searchedInAspect && !state.searchedInStandardObjectType) {
23063
+ const locale = this.tryGetTypeLocale(type) ?? this._contextLocale;
23025
23064
  const objectTypeMembers = this.getAllMembersOfType(
23026
- this._analyzer.getLocalizedStandardTypes(this._contextLocale).refObject,
23065
+ this._analyzer.getLocalizedStandardTypes(locale).refObject,
23027
23066
  options,
23028
23067
  state,
23029
23068
  hidingMatcher,
@@ -23285,9 +23324,10 @@ var TypeMemberLookupByKeyBase = class extends TypeMemberLookupBase {
23285
23324
  const state = new TypeMemberLookupState();
23286
23325
  let result = this.getMembersOfTypeByKey(key, type, options, state, hidingMatcher, typeExtensionLookup);
23287
23326
  if (state.searchedInAspect && !state.searchedInStandardObjectType) {
23327
+ const locale = this.tryGetTypeLocale(type) ?? this._contextLocale;
23288
23328
  const objectTypeMembers = this.getMembersOfTypeByKey(
23289
23329
  key,
23290
- this._analyzer.getLocalizedStandardTypes(this._contextLocale).refObject,
23330
+ this._analyzer.getLocalizedStandardTypes(locale).refObject,
23291
23331
  options,
23292
23332
  state,
23293
23333
  hidingMatcher,
@@ -24442,6 +24482,9 @@ var TsGlobalClassOrInterfaceEntity = class {
24442
24482
  if (TsUtils.isClassOrInterfaceType(symbolType)) {
24443
24483
  const baseTypes = this._tsctx.tsChecker.getBaseTypes(symbolType);
24444
24484
  type = Query.from(baseTypes).map((t) => this._tsctx.type.ofTsType(t)).mapAndFilter((t) => t.kind === "structured" && t.isRefObject() ? t : void 0).first();
24485
+ if (type === void 0) {
24486
+ type = this._tsctx.analyzer.getImplicitBaseTypeForStructuredType(this);
24487
+ }
24445
24488
  }
24446
24489
  }
24447
24490
  return new OriginalBaseObjectType(type);
@@ -24605,7 +24648,7 @@ var TsTypeLiteralEntity = class {
24605
24648
  this.kind = 2 /* Type */;
24606
24649
  this.typeEntityKind = 1 /* Structured */;
24607
24650
  this.subkind = "anonymous";
24608
- this._baseObjectType = new OriginalBaseObjectType(void 0);
24651
+ this._baseObjectType = new Cached();
24609
24652
  this._baseAspectTypes = new OriginalBaseAspectTypes([]);
24610
24653
  this._members = new Cached();
24611
24654
  }
@@ -24652,7 +24695,7 @@ var TsTypeLiteralEntity = class {
24652
24695
  return this.getTypeParameters().length;
24653
24696
  }
24654
24697
  getBaseObjectType() {
24655
- return this._baseObjectType;
24698
+ return this._baseObjectType.getOrInsertWith(() => new OriginalBaseObjectType(this._tsctx.analyzer.getImplicitBaseTypeForStructuredType(this)));
24656
24699
  }
24657
24700
  getBaseAspectTypes() {
24658
24701
  return this._baseAspectTypes;
@@ -24695,7 +24738,7 @@ var TsNamedTypeLiteralEntity = class {
24695
24738
  this.typeEntityKind = 1 /* Structured */;
24696
24739
  this.subkind = "package";
24697
24740
  this._typeParameters = new Cached();
24698
- this._baseObjectType = new OriginalBaseObjectType(void 0);
24741
+ this._baseObjectType = new Cached();
24699
24742
  this._baseAspectTypes = new OriginalBaseAspectTypes([]);
24700
24743
  this._members = new Cached();
24701
24744
  }
@@ -24753,7 +24796,7 @@ var TsNamedTypeLiteralEntity = class {
24753
24796
  return this.getTypeParameters().length;
24754
24797
  }
24755
24798
  getBaseObjectType() {
24756
- return this._baseObjectType;
24799
+ return this._baseObjectType.getOrInsertWith(() => new OriginalBaseObjectType(this._tsctx.analyzer.getImplicitBaseTypeForStructuredType(this)));
24757
24800
  }
24758
24801
  getBaseAspectTypes() {
24759
24802
  return this._baseAspectTypes;
@@ -25290,7 +25333,6 @@ var TsIteratorFunctionEntity = class {
25290
25333
  this.kind = 1 /* Function */;
25291
25334
  this.subkind = "method";
25292
25335
  this._returnType = new Cached();
25293
- this._overriddenMembers = new Cached();
25294
25336
  }
25295
25337
  getName() {
25296
25338
  const locale = this.getLocalization().locale;
@@ -25366,17 +25408,7 @@ var TsIteratorFunctionEntity = class {
25366
25408
  return 0 /* SubstituteOwnSubstitutions */;
25367
25409
  }
25368
25410
  getOverriddenMembers() {
25369
- return this._overriddenMembers.getOrInsertWith(() => {
25370
- const elementType = Query.from(this.getReturnType().getSubstitutions().getTypes()).first() ?? this._tsctx.analyzer.originalStandardTypes.unresolved;
25371
- const wellKnownDeclarations = this._tsctx.analyzer.getLocalizedWellKnownDeclarations(this.getLocalization().locale);
25372
- const substitutions = new Substitutions(
25373
- this._tsctx.analyzer,
25374
- wellKnownDeclarations.enumerable.getTypeParameters(),
25375
- [elementType]
25376
- );
25377
- const method = new Method(this._tsctx.analyzer, wellKnownDeclarations.enumeratorMethod, substitutions);
25378
- return [method];
25379
- });
25411
+ return [];
25380
25412
  }
25381
25413
  getLocalization() {
25382
25414
  return Localization.Original.ofEntity(this);
@@ -27254,8 +27286,8 @@ var NodeTypeUtils = class {
27254
27286
  return false;
27255
27287
  }
27256
27288
  }
27257
- static isNoneLiteral(node) {
27258
- return node.kind === 83 /* KeywordExpression */ && node.keyword.keywordKind === 57 /* None */;
27289
+ static isNullLiteral(node) {
27290
+ return node.kind === 83 /* KeywordExpression */ && node.keyword.keywordKind === 57 /* Null */;
27259
27291
  }
27260
27292
  static isSubprogramDeclarationOrLiteral(node) {
27261
27293
  switch (node.kind) {
@@ -28566,7 +28598,7 @@ var TranslationTextTemplateParameterDeclarationEntity = class {
28566
28598
  if (node.typeAnnotation !== void 0) {
28567
28599
  return this._analyzer.type.ofTypeSpecifier(node.typeAnnotation.typeSpecifier);
28568
28600
  }
28569
- return this._analyzer.includeNoneToType(
28601
+ return this._analyzer.includeNullToType(
28570
28602
  this._analyzer.originalStandardTypes.refObject,
28571
28603
  this.getLocalization().locale
28572
28604
  );
@@ -29455,8 +29487,8 @@ var TypeContext = class {
29455
29487
  get checker() {
29456
29488
  return this._tsctx.tsChecker;
29457
29489
  }
29458
- get refObjectOrNone() {
29459
- return this.analyzer.includeNoneToType(this._tsctx.standardTypes.refObject, 0 /* En */);
29490
+ get refObjectOrNull() {
29491
+ return this.analyzer.includeNullToType(this._tsctx.standardTypes.refObject, 0 /* En */);
29460
29492
  }
29461
29493
  get esSymbolType() {
29462
29494
  return this._esSymbolType.getOrInsertWith(() => {
@@ -29475,7 +29507,7 @@ var TypeContext = class {
29475
29507
  }
29476
29508
  ofTypeNode(node) {
29477
29509
  if (node === void 0) {
29478
- return this.refObjectOrNone;
29510
+ return this.refObjectOrNull;
29479
29511
  }
29480
29512
  const type = this.checker.getTypeFromTypeNode(node);
29481
29513
  return this.ofTsType(type);
@@ -29500,19 +29532,19 @@ var TypeContext = class {
29500
29532
  return this._tsctx.standardTypes.yesNo;
29501
29533
  }
29502
29534
  if ((type.flags & ts5.TypeFlags.Undefined) !== 0) {
29503
- return this._tsctx.standardTypes.none;
29535
+ return this._tsctx.standardTypes.nullType;
29504
29536
  }
29505
29537
  if ((type.flags & ts5.TypeFlags.Null) !== 0) {
29506
- return this._tsctx.standardTypes.none;
29538
+ return this._tsctx.standardTypes.nullType;
29507
29539
  }
29508
29540
  if ((type.flags & ts5.TypeFlags.Void) !== 0) {
29509
- return this._tsctx.standardTypes.none;
29541
+ return this._tsctx.standardTypes.nullType;
29510
29542
  }
29511
29543
  if ((type.flags & ts5.TypeFlags.Any) !== 0) {
29512
- return this.refObjectOrNone;
29544
+ return this.refObjectOrNull;
29513
29545
  }
29514
29546
  if ((type.flags & ts5.TypeFlags.Unknown) !== 0) {
29515
- return this.refObjectOrNone;
29547
+ return this.refObjectOrNull;
29516
29548
  }
29517
29549
  if ((type.flags & ts5.TypeFlags.Never) !== 0) {
29518
29550
  return this._tsctx.standardTypes.unresolved;
@@ -29521,7 +29553,7 @@ var TypeContext = class {
29521
29553
  return this._tsctx.standardTypes.refObject;
29522
29554
  }
29523
29555
  if ((type.flags & ts5.TypeFlags.ESSymbolLike) !== 0) {
29524
- return this.esSymbolType ?? this.refObjectOrNone;
29556
+ return this.esSymbolType ?? this.refObjectOrNull;
29525
29557
  }
29526
29558
  if ((type.flags & ts5.TypeFlags.Object) !== 0) {
29527
29559
  return this.ofObjectType(type);
@@ -29535,7 +29567,7 @@ var TypeContext = class {
29535
29567
  if ((type.flags & ts5.TypeFlags.TypeParameter) !== 0) {
29536
29568
  return this.ofTypeParameter(type);
29537
29569
  }
29538
- return this.refObjectOrNone;
29570
+ return this.refObjectOrNull;
29539
29571
  }
29540
29572
  getUnderlyingTypeOfEnum(symbol) {
29541
29573
  const declaredEnumType = this._tsctx.tsChecker.getDeclaredTypeOfSymbol(symbol);
@@ -29586,7 +29618,7 @@ var TypeContext = class {
29586
29618
  return this.createTypeFromEntity(entity);
29587
29619
  }
29588
29620
  }
29589
- return this.refObjectOrNone;
29621
+ return this.refObjectOrNull;
29590
29622
  }
29591
29623
  ofEnumLiteralType(type) {
29592
29624
  if (type.symbol?.parent !== void 0) {
@@ -29595,7 +29627,7 @@ var TypeContext = class {
29595
29627
  return this.createTypeFromEntity(entity);
29596
29628
  }
29597
29629
  }
29598
- return this.refObjectOrNone;
29630
+ return this.refObjectOrNull;
29599
29631
  }
29600
29632
  ofTypeAlias(type, aliasSymbol) {
29601
29633
  const entity = this.getEntityOfTypeSymbol(aliasSymbol);
@@ -29606,7 +29638,7 @@ var TypeContext = class {
29606
29638
  }
29607
29639
  return this.createTypeFromEntity(entity, typeArguments);
29608
29640
  }
29609
- return this.refObjectOrNone;
29641
+ return this.refObjectOrNull;
29610
29642
  }
29611
29643
  ofObjectType(type) {
29612
29644
  if (type.symbol !== void 0 && TsUtils.isTypeReference(type)) {
@@ -29645,7 +29677,7 @@ var TypeContext = class {
29645
29677
  return this.createTypeFromEntity(entity, typeArguments);
29646
29678
  }
29647
29679
  }
29648
- return this.refObjectOrNone;
29680
+ return this.refObjectOrNull;
29649
29681
  }
29650
29682
  ofUnionType(type) {
29651
29683
  const constituentTypes = type.types.map((t) => this.ofTsType(t));
@@ -29662,7 +29694,7 @@ var TypeContext = class {
29662
29694
  return this.analyzer.typeFactory.getParameterType(entity, false);
29663
29695
  }
29664
29696
  }
29665
- return this.refObjectOrNone;
29697
+ return this.refObjectOrNull;
29666
29698
  }
29667
29699
  createTypeArguments(type) {
29668
29700
  if (type.typeArguments === void 0) {
@@ -33311,7 +33343,7 @@ var EntityLocalizationContext = class {
33311
33343
  case "parameter":
33312
33344
  return this._analyzer.typeFactory.getParameterType(
33313
33345
  this.getLocalizedTypeParameterEntity(type.getEntity()),
33314
- type.isNoneExcluded
33346
+ type.isNullExcluded
33315
33347
  );
33316
33348
  case "unresolved":
33317
33349
  return type;
@@ -34171,7 +34203,7 @@ var AnalyzedTranslationPackage2 = class {
34171
34203
  }
34172
34204
  case 134 /* PackageImportTranslation */:
34173
34205
  break;
34174
- case 140 /* TextTranslation */:
34206
+ case 140 /* TextTranslationDeclaration */:
34175
34207
  break;
34176
34208
  default:
34177
34209
  Debug.never(translation);
@@ -35200,14 +35232,14 @@ var OverloadResolver = class {
35200
35232
  return void 0;
35201
35233
  }
35202
35234
  chooseBetterTargetType(targetTypeA, typeWhenTargetTypeIsA, targetTypeB, typeWhenTargetTypeIsB) {
35203
- const isTargetTypeANullable = this._analyzer.isNoneAssignableToType(targetTypeA);
35204
- targetTypeA = this._analyzer.excludeNoneFromType(targetTypeA);
35205
- const isTypeWhenTargetTypeIsANullable = this._analyzer.isNoneAssignableToType(typeWhenTargetTypeIsA);
35206
- typeWhenTargetTypeIsA = this._analyzer.excludeNoneFromType(typeWhenTargetTypeIsA);
35207
- const isTargetTypeBNullable = this._analyzer.isNoneAssignableToType(targetTypeB);
35208
- targetTypeB = this._analyzer.excludeNoneFromType(targetTypeB);
35209
- const isTypeWhenTargetTypeIsBNullable = this._analyzer.isNoneAssignableToType(typeWhenTargetTypeIsB);
35210
- typeWhenTargetTypeIsB = this._analyzer.excludeNoneFromType(typeWhenTargetTypeIsB);
35235
+ const isTargetTypeANullable = this._analyzer.isNullAssignableToType(targetTypeA);
35236
+ targetTypeA = this._analyzer.excludeNullFromType(targetTypeA);
35237
+ const isTypeWhenTargetTypeIsANullable = this._analyzer.isNullAssignableToType(typeWhenTargetTypeIsA);
35238
+ typeWhenTargetTypeIsA = this._analyzer.excludeNullFromType(typeWhenTargetTypeIsA);
35239
+ const isTargetTypeBNullable = this._analyzer.isNullAssignableToType(targetTypeB);
35240
+ targetTypeB = this._analyzer.excludeNullFromType(targetTypeB);
35241
+ const isTypeWhenTargetTypeIsBNullable = this._analyzer.isNullAssignableToType(typeWhenTargetTypeIsB);
35242
+ typeWhenTargetTypeIsB = this._analyzer.excludeNullFromType(typeWhenTargetTypeIsB);
35211
35243
  let result;
35212
35244
  if (typeWhenTargetTypeIsA.equals(targetTypeA) && !typeWhenTargetTypeIsB.equals(targetTypeB)) {
35213
35245
  result = 1 /* TypeAIsBetter */;
@@ -35235,8 +35267,8 @@ var OverloadResolver = class {
35235
35267
  }
35236
35268
  getDistanceBetweenTypesInHierarchy(baseType, derivedType) {
35237
35269
  let result;
35238
- baseType = this._analyzer.excludeNoneFromType(baseType);
35239
- derivedType = this._analyzer.excludeNoneFromType(derivedType);
35270
+ baseType = this._analyzer.excludeNullFromType(baseType);
35271
+ derivedType = this._analyzer.excludeNullFromType(derivedType);
35240
35272
  if (baseType.kind === "structured" && derivedType.kind === "structured") {
35241
35273
  if (derivedType.equals(baseType)) {
35242
35274
  result = 0;
@@ -35338,7 +35370,7 @@ var Resolver2 = class {
35338
35370
  this._analyzer.createNodeDiagnostic(230 /* CannotDetermineTargetTypeToCallTheConstructor */, this._node)
35339
35371
  ]);
35340
35372
  }
35341
- targetType = this._analyzer.excludeNoneFromType(targetType);
35373
+ targetType = this._analyzer.excludeNullFromType(targetType);
35342
35374
  if (targetType.kind === "unresolved") {
35343
35375
  return new Meaning_unresolved([
35344
35376
  this._analyzer.createNodeDiagnostic(214 /* CannotCreateInstanceOfUnresolvedType */, this._node)
@@ -35641,7 +35673,7 @@ var Resolver4 = class {
35641
35673
  }
35642
35674
  }
35643
35675
  {
35644
- let type2 = this._analyzer.excludeNoneFromType(this._analyzer.type.ofExpression(this.callee));
35676
+ let type2 = this._analyzer.excludeNullFromType(this._analyzer.type.ofExpression(this.callee));
35645
35677
  type2 = unaliasType(type2);
35646
35678
  if (type2.kind === "function") {
35647
35679
  return new Meaning_objectFunctionCall(type2);
@@ -35726,17 +35758,17 @@ var Resolver4 = class {
35726
35758
  getTypeFromMeaning(meaning) {
35727
35759
  switch (meaning.kind) {
35728
35760
  case "function-call":
35729
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
35761
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
35730
35762
  meaning.func.getReturnType(),
35731
35763
  this._node
35732
35764
  );
35733
35765
  case "operator-call":
35734
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
35766
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
35735
35767
  meaning.operator.getReturnType(),
35736
35768
  this._node
35737
35769
  );
35738
35770
  case "object-function-call":
35739
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
35771
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
35740
35772
  meaning.type.getReturnType(),
35741
35773
  this._node
35742
35774
  );
@@ -35919,7 +35951,7 @@ var Resolver5 = class {
35919
35951
  }
35920
35952
  resolve() {
35921
35953
  let receiverType = this._analyzer.type.ofExpression(this._node.expression);
35922
- receiverType = this._analyzer.excludeNoneFromType(receiverType);
35954
+ receiverType = this._analyzer.excludeNullFromType(receiverType);
35923
35955
  if (receiverType.kind === "unresolved") {
35924
35956
  return new Meaning_unresolved4(void 0);
35925
35957
  }
@@ -36644,7 +36676,7 @@ var Resolver8 = class {
36644
36676
  }
36645
36677
  resolve() {
36646
36678
  let receiverType = this._analyzer.type.ofExpression(this._node.expression);
36647
- receiverType = this._analyzer.excludeNoneFromType(receiverType);
36679
+ receiverType = this._analyzer.excludeNullFromType(receiverType);
36648
36680
  if (receiverType.kind === "unresolved") {
36649
36681
  return new ResolutionResult2(new Meaning_unresolved6());
36650
36682
  }
@@ -37046,7 +37078,7 @@ var Resolver9 = class {
37046
37078
  return new AccessedFunction_typeMember(method);
37047
37079
  }
37048
37080
  resolveInstanceMemberAccessMeaning(type) {
37049
- type = this._analyzer.excludeNoneFromType(type);
37081
+ type = this._analyzer.excludeNullFromType(type);
37050
37082
  if (type.kind === "unresolved") {
37051
37083
  return new ResolutionResult3(new Meaning_unresolved7());
37052
37084
  }
@@ -39085,7 +39117,7 @@ var PackageAndStaticVariablesInitializationValidator = class {
39085
39117
  getVariablesThatNeedToBeInitializedInConstructor(packageEntity) {
39086
39118
  const result = new Array();
39087
39119
  for (const member of packageEntity.getMembers().getNamedMembers()) {
39088
- if (member.kind === 0 /* Variable */ && !member.isConstant() && !isComputedVariableEntity(member) && !this._analyzer.isNoneAssignableToType(member.getType())) {
39120
+ if (member.kind === 0 /* Variable */ && !member.isConstant() && !isComputedVariableEntity(member) && !this._analyzer.isNullAssignableToType(member.getType())) {
39089
39121
  const definition = member.getDefinition();
39090
39122
  let variableEntity;
39091
39123
  if (definition.kind === 0 /* Source */) {
@@ -39097,7 +39129,7 @@ var PackageAndStaticVariablesInitializationValidator = class {
39097
39129
  variableEntity = member;
39098
39130
  }
39099
39131
  }
39100
- if (variableEntity !== void 0 && !variableEntity.isConstant() && !this._analyzer.isNoneAssignableToType(variableEntity.getType())) {
39132
+ if (variableEntity !== void 0 && !variableEntity.isConstant() && !this._analyzer.isNullAssignableToType(variableEntity.getType())) {
39101
39133
  result.push(variableEntity);
39102
39134
  }
39103
39135
  } else if (member.kind === 2 /* Type */) {
@@ -39108,7 +39140,7 @@ var PackageAndStaticVariablesInitializationValidator = class {
39108
39140
  }
39109
39141
  collectStaticFieldsThatNeedToBeInitializedInConstructor(typeEntity, result) {
39110
39142
  for (const member of typeEntity.getMembers().getNamedMembers()) {
39111
- if (member.kind === 0 /* Variable */ && member.isStatic() && !member.isConstant() && !isComputedVariableEntity(member) && !this._analyzer.isNoneAssignableToType(member.getType())) {
39143
+ if (member.kind === 0 /* Variable */ && member.isStatic() && !member.isConstant() && !isComputedVariableEntity(member) && !this._analyzer.isNullAssignableToType(member.getType())) {
39112
39144
  const definition = member.getDefinition();
39113
39145
  if (definition.kind === 0 /* Source */) {
39114
39146
  if (definition.value.kind === "single" && definition.value.node.kind === 52 /* FieldDeclaration */ && definition.value.node.initializer === void 0) {
@@ -40082,9 +40114,9 @@ var TypeNarrower = class {
40082
40114
  const right = unwrapParenthesizedExpressions(node.syntaxNode.right);
40083
40115
  const operator = node.syntaxNode.operator;
40084
40116
  if (operator.kind === 0 /* Token */ && (operator.tokenKind === 30 /* EqualsEquals */ || operator.tokenKind === 33 /* ExclamationEquals */)) {
40085
- if (this.isSameReferenceAsNarrowedExpression(left) && NodeTypeUtils.isNoneLiteral(right) || this.isSameReferenceAsNarrowedExpression(right) && NodeTypeUtils.isNoneLiteral(left)) {
40117
+ if (this.isSameReferenceAsNarrowedExpression(left) && NodeTypeUtils.isNullLiteral(right) || this.isSameReferenceAsNarrowedExpression(right) && NodeTypeUtils.isNullLiteral(left)) {
40086
40118
  const isEqual = node.isTrue ? operator.tokenKind === 30 /* EqualsEquals */ : !(operator.tokenKind === 30 /* EqualsEquals */);
40087
- return this.getTypeAtComparisonWithNone(typeAtPredecessor, isEqual);
40119
+ return this.getTypeAtComparisonWithNull(typeAtPredecessor, isEqual);
40088
40120
  }
40089
40121
  }
40090
40122
  return typeAtPredecessor;
@@ -40143,18 +40175,18 @@ var TypeNarrower = class {
40143
40175
  if (this._initialType.kind === "union" && rightType.kind !== "union") {
40144
40176
  const constituentTypes = this._initialType.originalTypes.filter((t) => this._analyzer.isTypeAssignableTo(rightType, t));
40145
40177
  result = this._analyzer.typeFactory.getUnionType(constituentTypes);
40146
- } else if (!this._analyzer.isNoneAssignableToType(rightType)) {
40147
- result = this._analyzer.excludeNoneFromType(this._initialType);
40178
+ } else if (!this._analyzer.isNullAssignableToType(rightType)) {
40179
+ result = this._analyzer.excludeNullFromType(this._initialType);
40148
40180
  } else {
40149
40181
  result = this._initialType;
40150
40182
  }
40151
40183
  return result;
40152
40184
  }
40153
- getTypeAtComparisonWithNone(type, isEqual) {
40185
+ getTypeAtComparisonWithNull(type, isEqual) {
40154
40186
  if (isEqual) {
40155
- return this._analyzer.includeNoneToType(type, this.locale);
40187
+ return this._analyzer.includeNullToType(type, this.locale);
40156
40188
  } else {
40157
- return this._analyzer.excludeNoneFromType(type);
40189
+ return this._analyzer.excludeNullFromType(type);
40158
40190
  }
40159
40191
  }
40160
40192
  getTypeAtIsExpression(typeAtPredecessor, node, isTrue) {
@@ -40173,8 +40205,8 @@ var TypeNarrower = class {
40173
40205
  if ((typeAssignabilityFlags & 16 /* ImplicitConversion */) !== 0) {
40174
40206
  return this.getTypeAtAssignmentWithImplicitConversion(rightType);
40175
40207
  }
40176
- if (rightType.equals(this._analyzer.originalStandardTypes.none)) {
40177
- return isDeclaration ? this._initialType : this._analyzer.includeNoneToType(this.getTypeAtControlFlowNode(predecessor), this.locale);
40208
+ if (rightType.equals(this._analyzer.originalStandardTypes.nullType)) {
40209
+ return isDeclaration ? this._initialType : this._analyzer.includeNullToType(this.getTypeAtControlFlowNode(predecessor), this.locale);
40178
40210
  }
40179
40211
  return rightType;
40180
40212
  }
@@ -40279,7 +40311,7 @@ var UserDefinableBinaryOperatorResolver = class {
40279
40311
  const semanticContext = this._analyzer.semanticContext.containing(this._left);
40280
40312
  const hidingMatcher = semanticContext.getHidingMatcher();
40281
40313
  const typeExtensionLookup = semanticContext;
40282
- const nonNullableLeftType = this._analyzer.excludeNoneFromType(this.leftType);
40314
+ const nonNullableLeftType = this._analyzer.excludeNullFromType(this.leftType);
40283
40315
  const leftTypeMemberLookup = TypeMemberLookup.ofType(
40284
40316
  this._analyzer,
40285
40317
  nonNullableLeftType,
@@ -40409,7 +40441,7 @@ var UserDefinableUnaryOperatorResolver = class {
40409
40441
  const operandType = this._analyzer.type.ofExpression(this._node.operand);
40410
40442
  const semanticContext = this._analyzer.semanticContext.containing(this._node.operand);
40411
40443
  const hidingMatcher = semanticContext.getHidingMatcher();
40412
- const nonNullableOperandType = this._analyzer.excludeNoneFromType(operandType);
40444
+ const nonNullableOperandType = this._analyzer.excludeNullFromType(operandType);
40413
40445
  const typeMemberLookup = TypeMemberLookup.ofType(
40414
40446
  this._analyzer,
40415
40447
  nonNullableOperandType,
@@ -41883,8 +41915,8 @@ var SemanticContextBuilder = class {
41883
41915
  }
41884
41916
  }
41885
41917
  break;
41886
- case 140 /* TextTranslation */:
41887
- if (cursor.sourceText.kind === 141 /* TranslationTextTemplate */) {
41918
+ case 140 /* TextTranslationDeclaration */:
41919
+ if (cursor.sourceText.kind === 141 /* TextTemplateDeclaration */) {
41888
41920
  return this.ofTranslationTextTemplate(cursor.sourceText);
41889
41921
  }
41890
41922
  break;
@@ -42953,7 +42985,7 @@ var Analyzer12 = class {
42953
42985
  this.typeUtils = new TypeUtils(this);
42954
42986
  this.conflictsCheck = new ConflictsCheck(this);
42955
42987
  const systemPackageName = PackageName3.parse("\u0410\u0440\u0442\u0435\u043B\u044C");
42956
- const systemPackage = this.getPackageEntityByName(systemPackageName);
42988
+ const systemPackage = this.getOriginalPackageEntityByName(systemPackageName);
42957
42989
  if (systemPackage === void 0) {
42958
42990
  throw new WellKnownDeclarationsLoadError(new Diagnostic(DiagnosticData.withCode(
42959
42991
  405 /* StandardPackage0NotFound */,
@@ -43014,9 +43046,8 @@ var Analyzer12 = class {
43014
43046
  );
43015
43047
  result = new WithDiagnostics_error(diagnostic);
43016
43048
  } else {
43017
- const returnType = member.getReturnType();
43018
- const elementType = this.ifTypeEnumeratorThenItemType(returnType);
43019
- if (elementType !== void 0) {
43049
+ const elementType = this.ifTypeEnumeratorThenItemType(member.getReturnType());
43050
+ if (member.getValueParameters().length === 0 && elementType !== void 0) {
43020
43051
  result = new WithDiagnostics_ok(new ExpressionCanBeUsedInForLoopCheckResult(elementType, member));
43021
43052
  } else {
43022
43053
  const diagnosticArgumentFactory = semanticContext.getDiagnosticArgumentFactory();
@@ -43034,6 +43065,23 @@ var Analyzer12 = class {
43034
43065
  }
43035
43066
  return result;
43036
43067
  }
43068
+ isEnumeratorMethodSignature(entity) {
43069
+ const name = LocalizationHelper.localizeHelperPhrase(
43070
+ 8 /* EnumeratorMethodName */,
43071
+ entity.getLocalization().locale
43072
+ );
43073
+ if (!entity.getName().considerEqual(new Name(name))) {
43074
+ return false;
43075
+ }
43076
+ if (entity.getValueParameters().length !== 0) {
43077
+ return false;
43078
+ }
43079
+ const elementType = this.ifTypeEnumeratorThenItemType(entity.getReturnType());
43080
+ if (elementType === void 0) {
43081
+ return false;
43082
+ }
43083
+ return true;
43084
+ }
43037
43085
  ifTypeEnumerableThenItemType(type) {
43038
43086
  let result = void 0;
43039
43087
  const enumerableEntity = this.originalWellKnownDeclarations.enumerable;
@@ -43363,7 +43411,7 @@ var Analyzer12 = class {
43363
43411
  case 78 /* DereferenceExpression */: {
43364
43412
  if (node.expression.kind === 62 /* AssumptionExpression */) {
43365
43413
  const type = this.type.ofExpression(node.expression.expression);
43366
- if (this.canTypeBeNone(type)) {
43414
+ if (this.canTypeBeNull(type)) {
43367
43415
  return true;
43368
43416
  } else {
43369
43417
  return this.isExpressionValidOptionalChaining(node.expression.expression);
@@ -43416,10 +43464,10 @@ var Analyzer12 = class {
43416
43464
  }
43417
43465
  return result;
43418
43466
  }
43419
- includeNoneToTypeIfExpressionValidOutermostOptionalChaining(type, node) {
43467
+ includeNullToTypeIfExpressionValidOutermostOptionalChaining(type, node) {
43420
43468
  let result = type;
43421
43469
  if (this.isExpressionValidOutermostOptionalChaining(node)) {
43422
- result = this.includeNoneToType(type, TreeQuery.fromNode(node).locale(this));
43470
+ result = this.includeNullToType(type, TreeQuery.fromNode(node).locale(this));
43423
43471
  }
43424
43472
  return result;
43425
43473
  }
@@ -43770,38 +43818,38 @@ var Analyzer12 = class {
43770
43818
  }
43771
43819
  /**
43772
43820
  * Преобразует тип таким образом, чтобы он не мог содержать значение `пусто`.
43773
- * После преобразования метод `canTypeBeNone` вернёт `true` для полученного типа.
43821
+ * После преобразования метод `canTypeBeNull` вернёт `true` для полученного типа.
43774
43822
  * @example
43775
43823
  * - Число -> Число
43776
43824
  * - Число | Пусто -> Число
43777
- * - Т: Объект? -> Т: Объект? (с флагом isNoneExcluded === true)
43825
+ * - Т: Объект? -> Т: Объект? (с флагом isNullExcluded === true)
43778
43826
  * - Т: Объект -> Т: Объект (без изменения)
43779
43827
  */
43780
- excludeNoneFromType(type) {
43781
- if (!this.canTypeBeNone(type)) {
43828
+ excludeNullFromType(type) {
43829
+ if (!this.canTypeBeNull(type)) {
43782
43830
  return type;
43783
43831
  }
43784
43832
  type = unaliasType(type);
43785
43833
  if (type.kind === "union") {
43786
- const typesWithoutNone = new Array();
43834
+ const typesWithoutNull = new Array();
43787
43835
  for (const composingType of type.originalTypes) {
43788
- const typeWithoutNone = this.excludeNoneFromType(composingType);
43789
- if (!typeWithoutNone.equals(this.originalStandardTypes.none)) {
43790
- typesWithoutNone.push(typeWithoutNone);
43836
+ const typeWithoutNull = this.excludeNullFromType(composingType);
43837
+ if (!typeWithoutNull.equals(this.originalStandardTypes.nullType)) {
43838
+ typesWithoutNull.push(typeWithoutNull);
43791
43839
  }
43792
43840
  }
43793
- if (typesWithoutNone.length === 0) {
43841
+ if (typesWithoutNull.length === 0) {
43794
43842
  return type;
43795
- } else if (typesWithoutNone.length === 1) {
43796
- return typesWithoutNone[0];
43843
+ } else if (typesWithoutNull.length === 1) {
43844
+ return typesWithoutNull[0];
43797
43845
  } else {
43798
- return this.typeFactory.getUnionType(typesWithoutNone);
43846
+ return this.typeFactory.getUnionType(typesWithoutNull);
43799
43847
  }
43800
43848
  }
43801
- if (type.kind === "parameter" && this.canTypeParameterBeNone(type)) {
43849
+ if (type.kind === "parameter" && this.canTypeParameterBeNull(type)) {
43802
43850
  return this.typeFactory.getParameterType(type.getEntity(), true);
43803
43851
  }
43804
- if (type.equals(this.originalStandardTypes.none)) {
43852
+ if (type.equals(this.originalStandardTypes.nullType)) {
43805
43853
  return type;
43806
43854
  }
43807
43855
  return type;
@@ -43814,21 +43862,21 @@ var Analyzer12 = class {
43814
43862
  * - Т: Объект? -> да
43815
43863
  * - Т: Объект -> нет
43816
43864
  */
43817
- canTypeBeNone(type) {
43865
+ canTypeBeNull(type) {
43818
43866
  type = unaliasType(type);
43819
43867
  if (type.kind === "union") {
43820
- return type.unaliasedFlattenedTypes.some((t) => t.equals(this.originalStandardTypes.none) || t.kind === "parameter" && this.canTypeParameterBeNone(t));
43868
+ return type.unaliasedFlattenedTypes.some((t) => t.equals(this.originalStandardTypes.nullType) || t.kind === "parameter" && this.canTypeParameterBeNull(t));
43821
43869
  }
43822
43870
  if (type.kind === "parameter") {
43823
- return this.canTypeParameterBeNone(type);
43871
+ return this.canTypeParameterBeNull(type);
43824
43872
  }
43825
- if (type.equals(this.originalStandardTypes.none)) {
43873
+ if (type.equals(this.originalStandardTypes.nullType)) {
43826
43874
  return true;
43827
43875
  }
43828
43876
  return false;
43829
43877
  }
43830
- canTypeParameterBeNone(type) {
43831
- return type.constraint === void 0 || this.canTypeBeNone(type.constraint);
43878
+ canTypeParameterBeNull(type) {
43879
+ return type.constraint === void 0 || this.canTypeBeNull(type.constraint);
43832
43880
  }
43833
43881
  /**
43834
43882
  * Делает тип `Пусто` совместимым с данным типом.
@@ -43838,22 +43886,22 @@ var Analyzer12 = class {
43838
43886
  * @example
43839
43887
  * - Число -> Число | Пусто
43840
43888
  * - Число | Пусто -> Число | Пусто
43841
- * - Т: Объект? -> (Т: Объект?) | Пусто (см. метод isNoneAssignableToType)
43889
+ * - Т: Объект? -> (Т: Объект?) | Пусто (см. метод isNullAssignableToType)
43842
43890
  * - Т: Объект -> (Т: Объект) | Пусто
43843
43891
  */
43844
- includeNoneToType(type, locale) {
43845
- if (this.isNoneAssignableToType(type)) {
43892
+ includeNullToType(type, locale) {
43893
+ if (this.isNullAssignableToType(type)) {
43846
43894
  return type;
43847
43895
  }
43848
- const noneType = this.getLocalizedStandardTypes(locale).none;
43849
- let typesWithNone;
43896
+ const nullType = this.getLocalizedStandardTypes(locale).nullType;
43897
+ let typesWithNull;
43850
43898
  if (type.kind === "union") {
43851
- typesWithNone = Array.from(type.originalTypes);
43852
- typesWithNone.push(noneType);
43899
+ typesWithNull = Array.from(type.originalTypes);
43900
+ typesWithNull.push(nullType);
43853
43901
  } else {
43854
- typesWithNone = [type, noneType];
43902
+ typesWithNull = [type, nullType];
43855
43903
  }
43856
- return this.typeFactory.getUnionType(typesWithNone);
43904
+ return this.typeFactory.getUnionType(typesWithNull);
43857
43905
  }
43858
43906
  /**
43859
43907
  * Отвечает на вопрос "Совместим ли тип `Пусто` с данным типом?" (Можно ли присвоить `пусто` в переменную с данным типом?).
@@ -43862,12 +43910,12 @@ var Analyzer12 = class {
43862
43910
  * - Число | Пусто -> да
43863
43911
  * - Т: Объект? -> нет, поскольку в качестве конкретного типа, заменяющего параметр, может быть использован тип, исключающий `пусто`.
43864
43912
  */
43865
- isNoneAssignableToType(type) {
43913
+ isNullAssignableToType(type) {
43866
43914
  type = unaliasType(type);
43867
43915
  if (type.kind === "union") {
43868
- return type.unaliasedFlattenedTypes.find((t) => t.equals(this.originalStandardTypes.none)) !== void 0;
43916
+ return type.unaliasedFlattenedTypes.find((t) => t.equals(this.originalStandardTypes.nullType)) !== void 0;
43869
43917
  }
43870
- if (type.equals(this.originalStandardTypes.none)) {
43918
+ if (type.equals(this.originalStandardTypes.nullType)) {
43871
43919
  return true;
43872
43920
  }
43873
43921
  return false;
@@ -43885,11 +43933,11 @@ var Analyzer12 = class {
43885
43933
  }
43886
43934
  }
43887
43935
  isValueParameterVariadic(entity) {
43888
- const type = this.excludeNoneFromType(entity.getType());
43936
+ const type = this.excludeNullFromType(entity.getType());
43889
43937
  return type.kind === "alias" && type.getEntity().getOriginalEntity() === this.originalWellKnownDeclarations.parameterArray;
43890
43938
  }
43891
43939
  getDefaultTypeParameterConstraint(locale) {
43892
- return this.includeNoneToType(this.getLocalizedStandardTypes(locale).refObject, locale);
43940
+ return this.includeNullToType(this.getLocalizedStandardTypes(locale).refObject, locale);
43893
43941
  }
43894
43942
  getSignatureTypeOfFunctionEntity(entity) {
43895
43943
  let result = this._functionEntitySignatureTypes.get(entity);
@@ -44573,7 +44621,7 @@ var Analyzer12 = class {
44573
44621
  }
44574
44622
  const functionContext = this.semanticContext.ofFunctionBlock(node);
44575
44623
  const returnType = functionContext.getContainingSubprogram()?.getReturnType();
44576
- if (returnType === void 0 || returnType.equals(this.originalStandardTypes.none)) {
44624
+ if (returnType === void 0 || returnType.equals(this.originalStandardTypes.nullType)) {
44577
44625
  if (node.expressionOrStatementList.kind === 68 /* CallExpression */) {
44578
44626
  return false;
44579
44627
  }
@@ -44804,7 +44852,7 @@ var WellKnownDeclarationsLoader = class {
44804
44852
  textTemplate: this.findPackageType(systemPackage, new Name("\u0428\u0430\u0431\u043B\u043E\u043D\u0422\u0435\u043A\u0441\u0442\u0430"), 0, 1 /* Structured */),
44805
44853
  char: this.findPackageType(systemPackage, new Name("\u0421\u0438\u043C\u0432\u043E\u043B"), 0, 1 /* Structured */),
44806
44854
  yesNo: this.findPackageType(systemPackage, new Name("\u0414\u0430\u041D\u0435\u0442"), 0, 1 /* Structured */),
44807
- none: this.findPackageType(systemPackage, new Name("\u041F\u0443\u0441\u0442\u043E"), 0, 1 /* Structured */),
44855
+ nullEntity: this.findPackageType(systemPackage, new Name("\u041F\u0443\u0441\u0442\u043E"), 0, 1 /* Structured */),
44808
44856
  enumerable,
44809
44857
  enumerator: this.findPackageType(systemPackage, new Name("\u041F\u0435\u0440\u0435\u0431\u043E\u0440"), 1, 1 /* Structured */),
44810
44858
  enumeratorMethod: this.findMethodDeclaration(enumerable, new Name("\u043F\u0435\u0440\u0435\u0431\u043E\u0440")),
@@ -45061,11 +45109,11 @@ var Type = class {
45061
45109
  }
45062
45110
  ofAssertionExpression(node) {
45063
45111
  const type = this.ofExpression(node.expression);
45064
- return this._analyzer.excludeNoneFromType(type);
45112
+ return this._analyzer.excludeNullFromType(type);
45065
45113
  }
45066
45114
  ofAssumptionExpression(node) {
45067
45115
  const type = this.ofExpression(node.expression);
45068
- return this._analyzer.excludeNoneFromType(type);
45116
+ return this._analyzer.excludeNullFromType(type);
45069
45117
  }
45070
45118
  ofAsExpression(node) {
45071
45119
  return this._analyzer.type.ofTypeSpecifier(node.typeSpecifier);
@@ -45084,7 +45132,7 @@ var Type = class {
45084
45132
  return this._analyzer.originalStandardTypes.unresolved;
45085
45133
  }
45086
45134
  case "question-question": {
45087
- const leftType = this._analyzer.excludeNoneFromType(this.ofExpression(node.left, targetTypeHint));
45135
+ const leftType = this._analyzer.excludeNullFromType(this.ofExpression(node.left, targetTypeHint));
45088
45136
  const rightType = this.ofExpression(node.right, targetTypeHint);
45089
45137
  return this._analyzer.typeFactory.getUnionType([leftType, rightType], true);
45090
45138
  }
@@ -45114,7 +45162,7 @@ var Type = class {
45114
45162
  switch (meaning.kind) {
45115
45163
  case "resolved":
45116
45164
  if (meaning.singleSuitableIndexer !== void 0) {
45117
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
45165
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
45118
45166
  meaning.singleSuitableIndexer.getType(),
45119
45167
  node
45120
45168
  );
@@ -45162,7 +45210,7 @@ var Type = class {
45162
45210
  return result;
45163
45211
  }
45164
45212
  case "instance-field-access": {
45165
- const declaredType = this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
45213
+ const declaredType = this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
45166
45214
  meaning.field.getType(),
45167
45215
  node
45168
45216
  );
@@ -45181,7 +45229,7 @@ var Type = class {
45181
45229
  return this._analyzer.originalStandardTypes.unresolved;
45182
45230
  case "instance-method-access":
45183
45231
  if (meaning.singleSuitableFunction !== void 0) {
45184
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(
45232
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(
45185
45233
  this.ofAccessedFunction(meaning.singleSuitableFunction),
45186
45234
  node
45187
45235
  );
@@ -45232,7 +45280,7 @@ var Type = class {
45232
45280
  if (meaning.kind === "unresolved") {
45233
45281
  return this._analyzer.originalStandardTypes.unresolved;
45234
45282
  }
45235
- return this._analyzer.includeNoneToTypeIfExpressionValidOutermostOptionalChaining(meaning.operator.getType(), node);
45283
+ return this._analyzer.includeNullToTypeIfExpressionValidOutermostOptionalChaining(meaning.operator.getType(), node);
45236
45284
  }
45237
45285
  ofConditionalExpression(node, targetTypeHint) {
45238
45286
  const firstExpressionType = this.ofExpression(node.firstExpression, targetTypeHint);
@@ -45240,7 +45288,7 @@ var Type = class {
45240
45288
  if (node.secondExpression !== void 0) {
45241
45289
  secondExpressionType = this.ofExpression(node.secondExpression, targetTypeHint);
45242
45290
  } else {
45243
- secondExpressionType = this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).none;
45291
+ secondExpressionType = this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).nullType;
45244
45292
  }
45245
45293
  return this._analyzer.typeFactory.getUnionType([firstExpressionType, secondExpressionType], true);
45246
45294
  }
@@ -45329,8 +45377,8 @@ var Type = class {
45329
45377
  case 52 /* Yes */:
45330
45378
  case 53 /* No */:
45331
45379
  return standardTypes.yesNo;
45332
- case 57 /* None */:
45333
- return standardTypes.none;
45380
+ case 57 /* Null */:
45381
+ return standardTypes.nullType;
45334
45382
  default:
45335
45383
  Debug.never(node.keyword);
45336
45384
  }
@@ -45402,7 +45450,7 @@ var Type = class {
45402
45450
  return this.ofTypeSpecifier(node.typeSpecifier);
45403
45451
  }
45404
45452
  ofNullableTypeSpecifier(node) {
45405
- return this._analyzer.includeNoneToType(
45453
+ return this._analyzer.includeNullToType(
45406
45454
  this.ofTypeSpecifier(node.typeSpecifier),
45407
45455
  TreeQuery.fromNode(node).locale(this._analyzer)
45408
45456
  );
@@ -45432,7 +45480,7 @@ var Type = class {
45432
45480
  const containingPackage = TreeQuery.fromNode(node).packageEntity(this._analyzer);
45433
45481
  const entity = new UnfinishedIntrinsicAnonymousFunctionTypeEntity(
45434
45482
  this._analyzer,
45435
- this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).none,
45483
+ this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).nullType,
45436
45484
  false,
45437
45485
  1 /* SubstituteOwnSubstitutionsAndMerge */,
45438
45486
  containingPackage,
@@ -45507,7 +45555,7 @@ var Type = class {
45507
45555
  if (node.returnTypeAnnotation !== void 0) {
45508
45556
  returnType = this._analyzer.type.ofTypeSpecifier(node.returnTypeAnnotation.typeSpecifier);
45509
45557
  } else {
45510
- returnType = this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).none;
45558
+ returnType = this._analyzer.getLocalizedStandardTypes(TreeQuery.fromNode(node).locale(this._analyzer)).nullType;
45511
45559
  }
45512
45560
  const containingPackage = TreeQuery.fromNode(node).packageEntity(this._analyzer);
45513
45561
  const unfinishedEntity = new UnfinishedIntrinsicAnonymousFunctionTypeEntity(
@@ -45640,7 +45688,7 @@ var TargetType = class {
45640
45688
  return this.getTargetTypeOfChildOfElseIfClause(node.parent, node);
45641
45689
  case 92 /* FunctionBlock */:
45642
45690
  return this.getTargetTypeOfChildOfFunctionBlock(node.parent, node);
45643
- case 140 /* TextTranslation */:
45691
+ case 140 /* TextTranslationDeclaration */:
45644
45692
  return this.getTargetTypeOfChildOfTextTemplateLiteralTranslation(node.parent, node);
45645
45693
  default:
45646
45694
  Debug.never(node.parent);
@@ -45689,7 +45737,7 @@ var TargetType = class {
45689
45737
  case "question-question": {
45690
45738
  const targetType = this.ofExpression(parent);
45691
45739
  if (targetType !== void 0 && child === parent.left) {
45692
- return this._analyzer.includeNoneToType(targetType, TreeQuery.fromNode(child).locale(this._analyzer));
45740
+ return this._analyzer.includeNullToType(targetType, TreeQuery.fromNode(child).locale(this._analyzer));
45693
45741
  }
45694
45742
  return targetType;
45695
45743
  }
@@ -45889,12 +45937,12 @@ var TargetType = class {
45889
45937
  )
45890
45938
  )
45891
45939
  );
45892
- if (node.sourceText.kind === 141 /* TranslationTextTemplate */) {
45940
+ if (node.sourceText.kind === 141 /* TextTemplateDeclaration */) {
45893
45941
  const templateSpans = node.sourceText.spanList.spans;
45894
45942
  for (let i = 0; i < templateSpans.length; i++) {
45895
45943
  const span = templateSpans[i];
45896
45944
  const parameter = span.parameter;
45897
- if (parameter.kind === 144 /* TranslationTextTemplateParameterDeclaration */) {
45945
+ if (parameter.kind === 144 /* TextTemplateParameterDeclaration */) {
45898
45946
  const parameterEntity = this._analyzer.entity.ofTranslationTextTemplateParameterDeclaration(parameter);
45899
45947
  const name = parameterEntity.getName();
45900
45948
  const parameterType = parameterEntity.getType();
@@ -46945,7 +46993,7 @@ var OverriddenMember = class {
46945
46993
  case "constructor":
46946
46994
  return member.getConstructedType();
46947
46995
  case "destructor":
46948
- return this._analyzer.getLocalizedStandardTypes(member.getEntity().getLocalization().locale).none;
46996
+ return this._analyzer.getLocalizedStandardTypes(member.getEntity().getLocalization().locale).nullType;
46949
46997
  default:
46950
46998
  Debug.never(member);
46951
46999
  }
@@ -47552,7 +47600,7 @@ var LinkedMultiPlatformPackage = class {
47552
47600
  if (type2.kind !== "parameter") {
47553
47601
  return false;
47554
47602
  }
47555
- if (type1.isNoneExcluded !== type2.isNoneExcluded) {
47603
+ if (type1.isNullExcluded !== type2.isNullExcluded) {
47556
47604
  return false;
47557
47605
  }
47558
47606
  const containingEntity1 = type1.getEntity().getContainingEntity();
@@ -47825,7 +47873,7 @@ var TypeAssignabilityCheck = class {
47825
47873
  return 2 /* Identity */;
47826
47874
  }
47827
47875
  if (target.kind === "parameter") {
47828
- if (source.kind === "parameter" && source.getEntity() === target.getEntity() && (this._analyzer.canTypeParameterBeNone(target) || !this._analyzer.canTypeParameterBeNone(source))) {
47876
+ if (source.kind === "parameter" && source.getEntity() === target.getEntity() && (this._analyzer.canTypeParameterBeNull(target) || !this._analyzer.canTypeParameterBeNull(source))) {
47829
47877
  return 2 /* Identity */;
47830
47878
  } else {
47831
47879
  return 1 /* NotAssignable */;
@@ -47893,10 +47941,10 @@ var TypeAssignabilityCheck = class {
47893
47941
  }
47894
47942
  return result;
47895
47943
  }
47896
- if (source.equals(this._analyzer.originalStandardTypes.none) || target.equals(this._analyzer.originalStandardTypes.none)) {
47944
+ if (source.equals(this._analyzer.originalStandardTypes.nullType) || target.equals(this._analyzer.originalStandardTypes.nullType)) {
47897
47945
  return source.equals(target) ? 2 /* Identity */ : 1 /* NotAssignable */;
47898
47946
  }
47899
- if (!this._analyzer.canTypeBeNone(source) && target.equals(this._analyzer.originalStandardTypes.refObject)) {
47947
+ if (!this._analyzer.canTypeBeNull(source) && target.equals(this._analyzer.originalStandardTypes.refObject)) {
47900
47948
  return 4 /* DerivedToBase */;
47901
47949
  }
47902
47950
  if (source.equals(this._analyzer.originalStandardTypes.integer) && target.equals(this._analyzer.originalStandardTypes.number)) {
@@ -48211,7 +48259,7 @@ var TypeUtils = class {
48211
48259
  if (constituentTypes.length === 0) {
48212
48260
  return [];
48213
48261
  }
48214
- if (this._analyzer.canTypeBeNone(unionType)) {
48262
+ if (this._analyzer.canTypeBeNull(unionType)) {
48215
48263
  return [];
48216
48264
  }
48217
48265
  const result = this.getBaseTypesForCommonTypesSearch(constituentTypes[0]);
@@ -48939,7 +48987,7 @@ var InstanceFieldsInitializationValidator = class {
48939
48987
  getFieldsThatNeedToBeInitializedInConstructor(typeEntity) {
48940
48988
  const result = new Array();
48941
48989
  for (const member of typeEntity.getMembers().getNamedMembers()) {
48942
- if (member.kind === 0 /* Variable */ && !member.isConstant() && !member.isStatic() && !TypeMemberEntity.isAbstract(member) && !isComputedVariableEntity(member) && !this._analyzer.isNoneAssignableToType(member.getType())) {
48990
+ if (member.kind === 0 /* Variable */ && !member.isConstant() && !member.isStatic() && !TypeMemberEntity.isAbstract(member) && !isComputedVariableEntity(member) && !this._analyzer.isNullAssignableToType(member.getType())) {
48943
48991
  const definition = member.getDefinition();
48944
48992
  if (definition.kind === 0 /* Source */) {
48945
48993
  if (definition.value.kind === "single" && definition.value.node.kind === 52 /* FieldDeclaration */ && definition.value.node.initializer === void 0) {
@@ -49414,8 +49462,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
49414
49462
  case 134 /* PackageImportTranslation */: {
49415
49463
  break;
49416
49464
  }
49417
- case 140 /* TextTranslation */: {
49418
- if (node.sourceText.kind === 141 /* TranslationTextTemplate */) {
49465
+ case 140 /* TextTranslationDeclaration */: {
49466
+ if (node.sourceText.kind === 141 /* TextTemplateDeclaration */) {
49419
49467
  const semanticContext = this._analyzer.semanticContext.ofTranslationTextTemplate(node.sourceText);
49420
49468
  semanticContext.validateNameConflicts(this._diagnosticAcceptor);
49421
49469
  }
@@ -49902,8 +49950,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
49902
49950
  switch (meaning.kind) {
49903
49951
  case "resolved": {
49904
49952
  const receiverType = this._analyzer.type.ofExpression(node.expression);
49905
- if (this._analyzer.canTypeBeNone(receiverType)) {
49906
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNone */, node.expression));
49953
+ if (this._analyzer.canTypeBeNull(receiverType)) {
49954
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNull */, node.expression));
49907
49955
  }
49908
49956
  const entity = meaning.operator.getEntity();
49909
49957
  if (this.isReceiverBaseAutoVariableAccess(node.expression) && TypeMemberEntity.isAbstract(entity)) {
@@ -49934,8 +49982,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
49934
49982
  }
49935
49983
  if (meaning.kind !== "unresolved") {
49936
49984
  const receiverType = this._analyzer.type.ofExpression(node.expression);
49937
- if (this._analyzer.canTypeBeNone(receiverType)) {
49938
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNone */, node.expression));
49985
+ if (this._analyzer.canTypeBeNull(receiverType)) {
49986
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNull */, node.expression));
49939
49987
  }
49940
49988
  const entity = meaning.singleSuitableIndexer?.getEntity();
49941
49989
  if (entity !== void 0 && this.isReceiverBaseAutoVariableAccess(node.expression) && TypeMemberEntity.isAbstract(entity)) {
@@ -49987,8 +50035,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
49987
50035
  }
49988
50036
  if (meaning.kind === "object-function-call") {
49989
50037
  const calleeType = this._analyzer.type.ofExpression(node.expression);
49990
- if (this._analyzer.canTypeBeNone(calleeType)) {
49991
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNone */, node.expression));
50038
+ if (this._analyzer.canTypeBeNull(calleeType)) {
50039
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNull */, node.expression));
49992
50040
  }
49993
50041
  }
49994
50042
  }
@@ -50349,7 +50397,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
50349
50397
  256 /* OnlySubprogramsWithReturnTypeCanReturnValue */,
50350
50398
  node.returnKeyword
50351
50399
  ));
50352
- } else if (returnType !== void 0 && node.expression === void 0 && !returnType.equals(this._analyzer.originalStandardTypes.none)) {
50400
+ } else if (returnType !== void 0 && node.expression === void 0 && !returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
50353
50401
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
50354
50402
  263 /* SubprogramMustReturnValue */,
50355
50403
  node.returnKeyword
@@ -50676,8 +50724,8 @@ var DiagnosticCollector = class _DiagnosticCollector {
50676
50724
  }
50677
50725
  if (meaning.kind === "instance-field-access" || meaning.kind === "instance-method-access" || meaning.kind === "operator-access") {
50678
50726
  const receiverType = this._analyzer.type.ofExpression(node.expression);
50679
- if (this._analyzer.canTypeBeNone(receiverType)) {
50680
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNone */, node.expression));
50727
+ if (this._analyzer.canTypeBeNull(receiverType)) {
50728
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /* ExpressionCanBeNull */, node.expression));
50681
50729
  }
50682
50730
  }
50683
50731
  }
@@ -51052,13 +51100,13 @@ var DiagnosticCollector = class _DiagnosticCollector {
51052
51100
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51053
51101
  269 /* Expected0TypeArguments */,
51054
51102
  nodeForDiagnostics,
51055
- [typeParameterCount.toString()]
51103
+ [typeParameterCount]
51056
51104
  ));
51057
51105
  } else {
51058
51106
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51059
51107
  270 /* ExpectedFrom0To1TypeArguments */,
51060
51108
  nodeForDiagnostics,
51061
- [requiredTypeParameterCount.toString(), typeParameterCount.toString()]
51109
+ [requiredTypeParameterCount, typeParameterCount]
51062
51110
  ));
51063
51111
  }
51064
51112
  return false;
@@ -51129,7 +51177,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
51129
51177
  }
51130
51178
  }
51131
51179
  checkAllCodePathsReturnOrResultVariableIsAssigned(node, nodeForDiagnostic, returnType, resultLocalVariable) {
51132
- if (node.block === void 0 || node.block.openBraceToken.isMissing && node.block.closeBraceToken.isMissing || node.block.expressionOrStatementList.kind !== 90 /* StatementList */ || returnType.equals(this._analyzer.originalStandardTypes.none)) {
51180
+ if (node.block === void 0 || node.block.openBraceToken.isMissing && node.block.closeBraceToken.isMissing || node.block.expressionOrStatementList.kind !== 90 /* StatementList */ || returnType.equals(this._analyzer.originalStandardTypes.nullType)) {
51133
51181
  return;
51134
51182
  }
51135
51183
  const controlFlowNodeEndingSubprogram = this._analyzer.getControlFlowGraph(this._sourceFile).controlFlowNodesEndingSubprogram.get(node);
@@ -51163,68 +51211,71 @@ var DiagnosticCollector = class _DiagnosticCollector {
51163
51211
  ));
51164
51212
  reportedSomeDiagnostics ||= true;
51165
51213
  }
51166
- for (const shadowedMember of overriddenAndShadowedMembers.shadowedMembers) {
51167
- const container = shadowedMember.value.getEntity().getContainer();
51168
- if (container.kind === "type-extension") {
51169
- continue;
51170
- }
51171
- switch (shadowedMember.shadowReason) {
51172
- case 0 /* BaseMemberHasDifferentKind */: {
51173
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51174
- 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51175
- nodeForDiagnostic,
51176
- [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51177
- ));
51178
- break;
51214
+ const container = entity.getContainer();
51215
+ if (!(container.kind === "type" && container.typeEntity.typeEntityKind === 4 /* Alias */)) {
51216
+ for (const shadowedMember of overriddenAndShadowedMembers.shadowedMembers) {
51217
+ const container2 = shadowedMember.value.getEntity().getContainer();
51218
+ if (container2.kind === "type-extension") {
51219
+ continue;
51179
51220
  }
51180
- case 1 /* BaseMemberCannotBeOverridden */: {
51181
- if (entity.isOverride()) {
51221
+ switch (shadowedMember.shadowReason) {
51222
+ case 0 /* BaseMemberHasDifferentKind */: {
51182
51223
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51183
- 337 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden */,
51224
+ 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51184
51225
  nodeForDiagnostic,
51185
51226
  [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51186
51227
  ));
51187
- } else {
51228
+ break;
51229
+ }
51230
+ case 1 /* BaseMemberCannotBeOverridden */: {
51231
+ if (entity.isOverride()) {
51232
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51233
+ 337 /* DeclarationConflictsWithBaseTypeMember0ThisMemberCannotBeOverridden */,
51234
+ nodeForDiagnostic,
51235
+ [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51236
+ ));
51237
+ } else {
51238
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51239
+ 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51240
+ nodeForDiagnostic,
51241
+ [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51242
+ ));
51243
+ }
51244
+ break;
51245
+ }
51246
+ case 2 /* NoOverrideModifier */: {
51188
51247
  this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51189
- 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51248
+ 336 /* DeclarationConflictsWithBaseTypeMember0AddOverrideModifier */,
51190
51249
  nodeForDiagnostic,
51191
51250
  [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51192
51251
  ));
51252
+ break;
51193
51253
  }
51194
- break;
51195
- }
51196
- case 2 /* NoOverrideModifier */: {
51197
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51198
- 336 /* DeclarationConflictsWithBaseTypeMember0AddOverrideModifier */,
51199
- nodeForDiagnostic,
51200
- [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51201
- ));
51202
- break;
51203
- }
51204
- case 4 /* TypeOrReturnTypeMismatch */: {
51205
- const diagnosticCode = entity.kind === 0 /* Variable */ ? 338 /* DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1 */ : 339 /* DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1 */;
51206
- const type = this._analyzer.overriddenMember.getMemberTypeOrReturnType(shadowedMember.value);
51207
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51208
- diagnosticCode,
51209
- nodeForDiagnostic,
51210
- [
51211
- this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value),
51212
- this._diagnosticArgumentFactory.createDisplayableType(type)
51213
- ]
51214
- ));
51215
- break;
51254
+ case 4 /* TypeOrReturnTypeMismatch */: {
51255
+ const diagnosticCode = entity.kind === 0 /* Variable */ ? 338 /* DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1 */ : 339 /* DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1 */;
51256
+ const type = this._analyzer.overriddenMember.getMemberTypeOrReturnType(shadowedMember.value);
51257
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51258
+ diagnosticCode,
51259
+ nodeForDiagnostic,
51260
+ [
51261
+ this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value),
51262
+ this._diagnosticArgumentFactory.createDisplayableType(type)
51263
+ ]
51264
+ ));
51265
+ break;
51266
+ }
51267
+ case 3 /* NoOverrideModifierAndTypeOrReturnTypeMismatch */:
51268
+ this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51269
+ 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51270
+ nodeForDiagnostic,
51271
+ [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51272
+ ));
51273
+ break;
51274
+ default:
51275
+ Debug.never(shadowedMember.shadowReason);
51216
51276
  }
51217
- case 3 /* NoOverrideModifierAndTypeOrReturnTypeMismatch */:
51218
- this.addDiagnostic(this._analyzer.createNodeDiagnostic(
51219
- 335 /* DeclarationConflictsWithBaseTypeMember0 */,
51220
- nodeForDiagnostic,
51221
- [this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
51222
- ));
51223
- break;
51224
- default:
51225
- Debug.never(shadowedMember.shadowReason);
51277
+ reportedSomeDiagnostics ||= true;
51226
51278
  }
51227
- reportedSomeDiagnostics ||= true;
51228
51279
  }
51229
51280
  if (!reportedSomeDiagnostics) {
51230
51281
  for (const overriddenMember of overriddenAndShadowedMembers.overriddenMembers) {
@@ -51514,11 +51565,11 @@ var LocalizedWellKnownDeclarations = class {
51514
51565
  }
51515
51566
  return this._yesNo;
51516
51567
  }
51517
- get none() {
51518
- if (this._none === void 0) {
51519
- this._none = this.getLocalizedStructuredType(this._analyzer.originalWellKnownDeclarations.none);
51568
+ get nullEntity() {
51569
+ if (this._null === void 0) {
51570
+ this._null = this.getLocalizedStructuredType(this._analyzer.originalWellKnownDeclarations.nullEntity);
51520
51571
  }
51521
- return this._none;
51572
+ return this._null;
51522
51573
  }
51523
51574
  get enumerable() {
51524
51575
  if (this._enumerable === void 0) {
@@ -51919,7 +51970,7 @@ var DefaultConstructorEntity = class {
51919
51970
  const orderedParametersForBaseConstructor = this.createOrderedParametersForBaseConstructor();
51920
51971
  const parametersForOwnFieldsInitialization = this._variablesToInitialize.length > 0 ? [] : void 0;
51921
51972
  const parametersForOwnVariables = this._variablesToInitialize.map((v) => {
51922
- const isOptionalParameter = v.hasInitializer || this._analyzer.isNoneAssignableToType(v.entity.getType());
51973
+ const isOptionalParameter = v.hasInitializer || this._analyzer.isNullAssignableToType(v.entity.getType());
51923
51974
  const parameter = new IntrinsicParameterVariableEntity(
51924
51975
  v.entity.getName(),
51925
51976
  v.entity.getType(),
@@ -52181,7 +52232,7 @@ var PackageFunctionDeclarationEntity = class {
52181
52232
  );
52182
52233
  }
52183
52234
  getReturnType() {
52184
- return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
52235
+ return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
52185
52236
  }
52186
52237
  getDefinition() {
52187
52238
  return { kind: 0 /* Source */, node: this._node };
@@ -52242,7 +52293,7 @@ var MethodDeclarationEntity = class {
52242
52293
  );
52243
52294
  }
52244
52295
  getReturnType() {
52245
- return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
52296
+ return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
52246
52297
  }
52247
52298
  getDefinition() {
52248
52299
  return { kind: 0 /* Source */, node: this._node };
@@ -52323,7 +52374,7 @@ var NestedFunctionDeclarationEntity = class {
52323
52374
  );
52324
52375
  }
52325
52376
  getReturnType() {
52326
- return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
52377
+ return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
52327
52378
  }
52328
52379
  getDefinition() {
52329
52380
  return { kind: 0 /* Source */, node: this._node };
@@ -52535,7 +52586,7 @@ var PackageFunctionTypeDeclarationEntity = class {
52535
52586
  );
52536
52587
  }
52537
52588
  getReturnType() {
52538
- return this._returnType.getOrInsertWith(() => this._node.body.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.body.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
52589
+ return this._returnType.getOrInsertWith(() => this._node.body.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.body.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
52539
52590
  }
52540
52591
  getMembers() {
52541
52592
  return this._members.getOrInsertWith(() => {
@@ -52602,7 +52653,7 @@ var AnonymousFunctionTypeDeclarationEntity = class {
52602
52653
  );
52603
52654
  }
52604
52655
  getReturnType() {
52605
- return this._returnType.getOrInsertWith(() => this._node.body.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.body.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
52656
+ return this._returnType.getOrInsertWith(() => this._node.body.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.body.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
52606
52657
  }
52607
52658
  getMembers() {
52608
52659
  return this._members.getOrInsertWith(() => {
@@ -53227,7 +53278,7 @@ var OperatorDeclarationEntity = class {
53227
53278
  return this._valueParameters.getOrInsertWith(() => this._node.parameterClause.parameterList.parameters.map((p) => this._analyzer.entity.ofParameterDeclaration(p)).toArray());
53228
53279
  }
53229
53280
  getReturnType() {
53230
- return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).none);
53281
+ return this._returnType.getOrInsertWith(() => this._node.returnTypeAnnotation !== void 0 ? this._analyzer.type.ofTypeSpecifier(this._node.returnTypeAnnotation.typeSpecifier) : this._analyzer.getLocalizedStandardTypes(this.getLocalization().locale).nullType);
53231
53282
  }
53232
53283
  getDefinition() {
53233
53284
  return { kind: 0 /* Source */, node: this._node };
@@ -54473,21 +54524,21 @@ var FunctionType = class {
54473
54524
 
54474
54525
  // source/types/ParameterType.ts
54475
54526
  var ParameterType = class {
54476
- constructor(_analyzer, _entity, isNoneExcluded) {
54527
+ constructor(_analyzer, _entity, isNullExcluded) {
54477
54528
  this._analyzer = _analyzer;
54478
54529
  this._entity = _entity;
54479
- this.isNoneExcluded = isNoneExcluded;
54530
+ this.isNullExcluded = isNullExcluded;
54480
54531
  this.kind = "parameter";
54481
54532
  this._constraint = new Cached();
54482
54533
  }
54483
54534
  /**
54484
- * Ограничение параметра типа с учётом флага {@link isNoneExcluded}.
54535
+ * Ограничение параметра типа с учётом флага {@link isNullExcluded}.
54485
54536
  */
54486
54537
  get constraint() {
54487
54538
  return this._constraint.getOrInsertWith(() => {
54488
54539
  let result = this._entity.getConstraint().cycleFree;
54489
- if (result !== void 0 && this.isNoneExcluded) {
54490
- result = this._analyzer.excludeNoneFromType(result);
54540
+ if (result !== void 0 && this.isNullExcluded) {
54541
+ result = this._analyzer.excludeNullFromType(result);
54491
54542
  }
54492
54543
  return result;
54493
54544
  });
@@ -54505,7 +54556,7 @@ var ParameterType = class {
54505
54556
  return map.get(this._entity.getOriginalEntity()) ?? this;
54506
54557
  }
54507
54558
  equals(other) {
54508
- return this === other || other.kind === "parameter" && this._entity.getOriginalEntity() === other.getEntity().getOriginalEntity() && this.isNoneExcluded === other.isNoneExcluded;
54559
+ return this === other || other.kind === "parameter" && this._entity.getOriginalEntity() === other.getEntity().getOriginalEntity() && this.isNullExcluded === other.isNullExcluded;
54509
54560
  }
54510
54561
  getBaseObjectTypeOrAliasedType() {
54511
54562
  return void 0;
@@ -54583,12 +54634,12 @@ var StandardTypes = class {
54583
54634
  }
54584
54635
  return this._yesNo;
54585
54636
  }
54586
- get none() {
54587
- if (this._none === void 0) {
54588
- const entity = this._wellKnownDeclarations.none;
54589
- this._none = this._analyzer.typeFactory.getStructuredType(entity, Substitutions.empty(this._analyzer));
54637
+ get nullType() {
54638
+ if (this._null === void 0) {
54639
+ const entity = this._wellKnownDeclarations.nullEntity;
54640
+ this._null = this._analyzer.typeFactory.getStructuredType(entity, Substitutions.empty(this._analyzer));
54590
54641
  }
54591
- return this._none;
54642
+ return this._null;
54592
54643
  }
54593
54644
  get measure() {
54594
54645
  if (this._measure === void 0) {
@@ -55660,6 +55711,7 @@ var FunctionEntityDetails = class {
55660
55711
  this.isAbstract = false;
55661
55712
  this.isStatic = false;
55662
55713
  this.originalFunctionEntityKind = 0 /* RegularFunction */;
55714
+ this.isJavaScriptIteratorMethod = false;
55663
55715
  }
55664
55716
  };
55665
55717
  var VariableEntityDetails = class {
@@ -56929,13 +56981,13 @@ var NestedFunctionDeclarationStatement3 = class _NestedFunctionDeclarationStatem
56929
56981
  return new _NestedFunctionDeclarationStatement(this.declaration.clone(), this.sourceLocation);
56930
56982
  }
56931
56983
  };
56932
- var NoneLiteral = class _NoneLiteral {
56984
+ var NullLiteral = class _NullLiteral {
56933
56985
  constructor(sourceLocation) {
56934
56986
  this.sourceLocation = sourceLocation;
56935
- this.kind = 16 /* NoneLiteral */;
56987
+ this.kind = 16 /* NullLiteral */;
56936
56988
  }
56937
56989
  clone() {
56938
- return new _NoneLiteral(this.sourceLocation);
56990
+ return new _NullLiteral(this.sourceLocation);
56939
56991
  }
56940
56992
  };
56941
56993
  var NumericLiteral = class _NumericLiteral {
@@ -57654,6 +57706,36 @@ var YieldStatement3 = class _YieldStatement {
57654
57706
  return new _YieldStatement(this.expression.clone(), this.sourceLocation);
57655
57707
  }
57656
57708
  };
57709
+ var TextTranslationDeclaration3 = class _TextTranslationDeclaration {
57710
+ constructor(key, sourceTextTemplate, translatedText, translationFunction, sourceLocation) {
57711
+ this.key = key;
57712
+ this.sourceTextTemplate = sourceTextTemplate;
57713
+ this.translatedText = translatedText;
57714
+ this.translationFunction = translationFunction;
57715
+ this.sourceLocation = sourceLocation;
57716
+ this.kind = 99 /* TextTranslationDeclaration */;
57717
+ }
57718
+ clone() {
57719
+ return new _TextTranslationDeclaration(
57720
+ this.key,
57721
+ this.sourceTextTemplate?.clone(),
57722
+ this.translatedText,
57723
+ this.translationFunction?.clone(),
57724
+ this.sourceLocation
57725
+ );
57726
+ }
57727
+ };
57728
+ var TextTemplateDeclaration3 = class _TextTemplateDeclaration {
57729
+ constructor(fragments, parameters, sourceLocation) {
57730
+ this.fragments = fragments;
57731
+ this.parameters = parameters;
57732
+ this.sourceLocation = sourceLocation;
57733
+ this.kind = 100 /* TextTemplateDeclaration */;
57734
+ }
57735
+ clone() {
57736
+ return new _TextTemplateDeclaration(this.fragments, this.parameters, this.sourceLocation);
57737
+ }
57738
+ };
57657
57739
 
57658
57740
  // source/emitter/ir/SourceLocation.ts
57659
57741
  var SourceLocation = class {
@@ -57778,8 +57860,8 @@ var TypeUtils2 = class {
57778
57860
  return expression.returnType;
57779
57861
  case 11 /* CharLiteral */:
57780
57862
  return this._ectx.standardTypes.char;
57781
- case 16 /* NoneLiteral */:
57782
- return this._ectx.standardTypes.none;
57863
+ case 16 /* NullLiteral */:
57864
+ return this._ectx.standardTypes.nullType;
57783
57865
  case 30 /* IndexedAccessExpression */:
57784
57866
  return this.getTypeOfComputedAccess(expression.access);
57785
57867
  case 31 /* IntegerLiteral */:
@@ -57789,13 +57871,13 @@ var TypeUtils2 = class {
57789
57871
  case 37 /* NumericLiteral */:
57790
57872
  return this._ectx.standardTypes.number;
57791
57873
  case 39 /* FunctionLiteral */:
57792
- return this._ectx.standardTypes.none;
57874
+ return this._ectx.standardTypes.nullType;
57793
57875
  case 40 /* PrefixUnaryExpression */:
57794
- return this._ectx.standardTypes.none;
57876
+ return this._ectx.standardTypes.nullType;
57795
57877
  case 41 /* MeasureLiteral */:
57796
- return this._ectx.standardTypes.none;
57878
+ return this._ectx.standardTypes.nullType;
57797
57879
  case 42 /* ReferenceExpression */:
57798
- return this._ectx.standardTypes.none;
57880
+ return this._ectx.standardTypes.nullType;
57799
57881
  case 46 /* TextLiteral */:
57800
57882
  return this._ectx.standardTypes.text;
57801
57883
  case 96 /* TextWithEntityName */:
@@ -57807,7 +57889,7 @@ var TypeUtils2 = class {
57807
57889
  case 58 /* ThisExpression */:
57808
57890
  return expression.type;
57809
57891
  case 90 /* BaseExpression */:
57810
- return this._ectx.standardTypes.none;
57892
+ return this._ectx.standardTypes.nullType;
57811
57893
  case 63 /* ArrayLiteral */:
57812
57894
  return this._ectx.standardTypes.array;
57813
57895
  case 64 /* TypeAccessExpression */:
@@ -57830,7 +57912,7 @@ var TypeUtils2 = class {
57830
57912
  if (expression.expressions.length > 0) {
57831
57913
  return this.ofExpression(expression.expressions[expression.expressions.length - 1]);
57832
57914
  }
57833
- return this._ectx.standardTypes.none;
57915
+ return this._ectx.standardTypes.nullType;
57834
57916
  case 75 /* BaseConstructorCallExpression */:
57835
57917
  return this._ectx.standardTypes.func;
57836
57918
  case 91 /* OwnConstructorCallExpression */:
@@ -57848,7 +57930,7 @@ var TypeUtils2 = class {
57848
57930
  case 87 /* JsInstanceOfExpression */:
57849
57931
  return this._ectx.standardTypes.yesNo;
57850
57932
  case 88 /* JsIdentifierExpression */:
57851
- return this._ectx.standardTypes.none;
57933
+ return this._ectx.standardTypes.nullType;
57852
57934
  case 89 /* DereferenceExpression */:
57853
57935
  return this.getTypeOfComputedAccess(expression.access);
57854
57936
  default:
@@ -57873,8 +57955,8 @@ var StandardTypes2 = class {
57873
57955
  this._analyzer = _analyzer;
57874
57956
  this._entityMap = _entityMap;
57875
57957
  }
57876
- get none() {
57877
- return this._none ??= this._entityMap.getType(this._analyzer.originalStandardTypes.none);
57958
+ get nullType() {
57959
+ return this._null ??= this._entityMap.getType(this._analyzer.originalStandardTypes.nullType);
57878
57960
  }
57879
57961
  get yesNo() {
57880
57962
  return this._yesNo ??= this._entityMap.getType(this._analyzer.originalStandardTypes.yesNo);
@@ -58011,6 +58093,9 @@ var EntityMap = class _EntityMap {
58011
58093
  result.details.ifBasicAliasTypeMethodThenRealMethod = this.getFunctionEntity(realBasicMethod);
58012
58094
  }
58013
58095
  }
58096
+ if (result.containingPackage.details.isJavaScriptPackage !== void 0 && this._analyzer.isEnumeratorMethodSignature(entity)) {
58097
+ result.details.isJavaScriptIteratorMethod = true;
58098
+ }
58014
58099
  }
58015
58100
  }
58016
58101
  }
@@ -58157,7 +58242,7 @@ var EntityMap = class _EntityMap {
58157
58242
  } else {
58158
58243
  result = new MappedFunctionEntity(entity, 1 /* GetterOrSetter */);
58159
58244
  this._functions.set(entity, result);
58160
- result.returnType = this.getType(this._analyzer.originalStandardTypes.none);
58245
+ result.returnType = this.getType(this._analyzer.originalStandardTypes.nullType);
58161
58246
  result.containingPackage = this.getContainingPackageAndAccumulateIfMember(entity, result);
58162
58247
  const owningEntity = entity.getOwningEntity();
58163
58248
  switch (owningEntity.kind) {
@@ -58428,12 +58513,19 @@ var EntityMap = class _EntityMap {
58428
58513
  return new UnionOrIntersectionType(type.originalTypes.map((t) => this.getType(t)), false);
58429
58514
  }
58430
58515
  case "unresolved": {
58431
- return this.getType(this._analyzer.originalStandardTypes.none);
58516
+ return this.getType(this._analyzer.originalStandardTypes.nullType);
58432
58517
  }
58433
58518
  default:
58434
58519
  Debug.never(type);
58435
58520
  }
58436
58521
  }
58522
+ enumerateAllPackageEntities() {
58523
+ const result = new Set(this._packages.values());
58524
+ for (const entity of this._linkedPackages.values()) {
58525
+ result.add(entity);
58526
+ }
58527
+ return result;
58528
+ }
58437
58529
  getPackageEntityInternal(entity, link) {
58438
58530
  entity = entity.getOriginalEntity();
58439
58531
  link &&= this._analyzer.linkedEntity.entityCanBeLinked(entity);
@@ -58957,6 +59049,9 @@ var Transformer = class {
58957
59049
  case 27 /* PackageVariableSetterDeclaration */:
58958
59050
  result = this.config.transformPackageVariableSetterDeclaration?.(declaration);
58959
59051
  break;
59052
+ case 99 /* TextTranslationDeclaration */:
59053
+ result = this.config.transformTextTranslationDeclaration?.(declaration);
59054
+ break;
58960
59055
  default:
58961
59056
  Debug.never(declaration);
58962
59057
  }
@@ -58991,6 +59086,9 @@ var Transformer = class {
58991
59086
  case 27 /* PackageVariableSetterDeclaration */:
58992
59087
  this.transformPackageVariableSetterDeclarationChildren(declaration2);
58993
59088
  break;
59089
+ case 99 /* TextTranslationDeclaration */:
59090
+ this.transformTextTranslationDeclarationChildren(declaration2);
59091
+ break;
58994
59092
  default:
58995
59093
  Debug.never(declaration2);
58996
59094
  }
@@ -59596,8 +59694,8 @@ var Transformer = class {
59596
59694
  case 11 /* CharLiteral */:
59597
59695
  result = this.config.transformCharLiteral?.(transformedExpression);
59598
59696
  break;
59599
- case 16 /* NoneLiteral */:
59600
- result = this.config.transformNoneLiteral?.(transformedExpression);
59697
+ case 16 /* NullLiteral */:
59698
+ result = this.config.transformNullLiteral?.(transformedExpression);
59601
59699
  break;
59602
59700
  case 30 /* IndexedAccessExpression */:
59603
59701
  result = this.config.transformIndexedAccessExpression?.(transformedExpression);
@@ -59738,8 +59836,8 @@ var Transformer = class {
59738
59836
  case 11 /* CharLiteral */:
59739
59837
  this.transformCharLiteralChildren(transformedExpression);
59740
59838
  break;
59741
- case 16 /* NoneLiteral */:
59742
- this.transformNoneLiteralChildren(transformedExpression);
59839
+ case 16 /* NullLiteral */:
59840
+ this.transformNullLiteralChildren(transformedExpression);
59743
59841
  break;
59744
59842
  case 30 /* IndexedAccessExpression */:
59745
59843
  this.transformIndexedAccessExpressionChildren(transformedExpression);
@@ -59886,7 +59984,7 @@ var Transformer = class {
59886
59984
  }
59887
59985
  transformCharLiteralChildren(_expression) {
59888
59986
  }
59889
- transformNoneLiteralChildren(_expression) {
59987
+ transformNullLiteralChildren(_expression) {
59890
59988
  }
59891
59989
  transformIndexedAccessExpressionChildren(expression) {
59892
59990
  expression.expression = this.transformExpression(expression.expression);
@@ -60063,6 +60161,14 @@ var Transformer = class {
60063
60161
  }
60064
60162
  return transformedNode;
60065
60163
  }
60164
+ transformTextTranslationDeclarationChildren(declaration) {
60165
+ const saveTransformedDeclaration = this._transformedDeclaration;
60166
+ this._transformedDeclaration = declaration;
60167
+ if (declaration.translationFunction !== void 0) {
60168
+ this.transformFunctionLiteralChildren(declaration.translationFunction);
60169
+ }
60170
+ this._transformedDeclaration = saveTransformedDeclaration;
60171
+ }
60066
60172
  transformStatementsAndAddHoistedLocalVariables(statements) {
60067
60173
  const saveHoistedLocalVariables = this._hoistedLocalVariables;
60068
60174
  this._hoistedLocalVariables = [];
@@ -60216,7 +60322,7 @@ var GeneralLowering = class {
60216
60322
  affectsDeclaration: true,
60217
60323
  affectsDerivedMembers: true
60218
60324
  };
60219
- MiscLowering.resolveComputedNames(state);
60325
+ MiscLowering.resolveComputedNames(this._ectx, state);
60220
60326
  UsagesLowering.lowerAllPackages(loweringContext, state);
60221
60327
  }
60222
60328
  };
@@ -60433,7 +60539,7 @@ var GeneralLoweringContext = class {
60433
60539
  if (a !== void 0) {
60434
60540
  return a;
60435
60541
  }
60436
- return new NoneLiteral(void 0);
60542
+ return new NullLiteral(void 0);
60437
60543
  });
60438
60544
  let isLastArgumentSpreading = isArgumentForLastParameterPassed;
60439
60545
  if (isLastArgumentSpreading) {
@@ -60490,7 +60596,7 @@ var GeneralLoweringContext = class {
60490
60596
  false,
60491
60597
  new OrderedArguments([object, keyExpression, descriptorArgument], false),
60492
60598
  false,
60493
- this.ectx.standardTypes.none,
60599
+ this.ectx.standardTypes.nullType,
60494
60600
  void 0
60495
60601
  );
60496
60602
  }
@@ -60618,7 +60724,7 @@ var GeneralLoweringContext = class {
60618
60724
  const isEmptyExpression = new BinaryExpression3(
60619
60725
  tempVariableAssignment ?? tempVariableAccess,
60620
60726
  5 /* Equals */,
60621
- new NoneLiteral(void 0),
60727
+ new NullLiteral(void 0),
60622
60728
  this.ectx.standardTypes.yesNo,
60623
60729
  void 0,
60624
60730
  void 0
@@ -60626,7 +60732,7 @@ var GeneralLoweringContext = class {
60626
60732
  const memberAccessType = this.ectx.type.ofExpression(substitutionMemberAccess);
60627
60733
  result = new TernaryExpression(
60628
60734
  isEmptyExpression,
60629
- new NoneLiteral(void 0),
60735
+ new NullLiteral(void 0),
60630
60736
  substitutionMemberAccess,
60631
60737
  memberAccessType,
60632
60738
  void 0
@@ -60849,7 +60955,7 @@ var ImplicitImplementationLowering = class {
60849
60955
  1 /* GetterOrSetter */,
60850
60956
  targetFieldEntity.name,
60851
60957
  [parameterEntity],
60852
- this._ctx.ectx.standardTypes.none,
60958
+ this._ctx.ectx.standardTypes.nullType,
60853
60959
  targetFieldEntity.containingPackage
60854
60960
  );
60855
60961
  const variableAccess = FieldAccessExpression.set(
@@ -60879,15 +60985,17 @@ var CompoundDeclarationsAndOperatorsLowering = class {
60879
60985
  lower(state) {
60880
60986
  for (const pkg of state.packages) {
60881
60987
  const memberEntities = new Set(pkg.entity.members);
60882
- pkg.ir.declarations = pkg.ir.declarations.map((d) => {
60988
+ const declarations = [];
60989
+ pkg.ir.declarations.forEach((d) => {
60883
60990
  if (d.kind === 24 /* PackageTypeDeclaration */) {
60884
60991
  this.lowerPackageTypeDeclaration(d);
60885
- return d;
60992
+ declarations.push(d);
60886
60993
  } else if (d.kind === 26 /* PackageVariableGetterDeclaration */) {
60887
60994
  memberEntities.delete(d.variableEntity);
60888
60995
  memberEntities.add(d.entity);
60889
60996
  d.entity.functionEntityKind = 0 /* RegularFunction */;
60890
- return new PackageFunctionDeclaration3(new Modifiers(), [], d.body, d.entity, false, d.sourceLocation);
60997
+ d = new PackageFunctionDeclaration3(new Modifiers(), [], d.body, d.entity, false, d.sourceLocation);
60998
+ declarations.push(d);
60891
60999
  } else if (d.kind === 27 /* PackageVariableSetterDeclaration */) {
60892
61000
  memberEntities.delete(d.variableEntity);
60893
61001
  memberEntities.add(d.entity);
@@ -60898,7 +61006,7 @@ var CompoundDeclarationsAndOperatorsLowering = class {
60898
61006
  false,
60899
61007
  void 0
60900
61008
  )];
60901
- return new PackageFunctionDeclaration3(
61009
+ d = new PackageFunctionDeclaration3(
60902
61010
  new Modifiers(),
60903
61011
  valueParameters,
60904
61012
  d.body,
@@ -60906,10 +61014,13 @@ var CompoundDeclarationsAndOperatorsLowering = class {
60906
61014
  false,
60907
61015
  d.sourceLocation
60908
61016
  );
61017
+ declarations.push(d);
61018
+ } else if (d.kind === 99 /* TextTranslationDeclaration */) {
60909
61019
  } else {
60910
- return d;
61020
+ declarations.push(d);
60911
61021
  }
60912
61022
  });
61023
+ pkg.ir.declarations = declarations;
60913
61024
  pkg.entity.members = Array.from(memberEntities);
60914
61025
  }
60915
61026
  }
@@ -61318,7 +61429,7 @@ var AspectsLowering = class {
61318
61429
  1 /* GetterOrSetter */,
61319
61430
  targetVariableEntity.name,
61320
61431
  [parameterEntity],
61321
- this._ctx.ectx.standardTypes.none,
61432
+ this._ctx.ectx.standardTypes.nullType,
61322
61433
  targetVariableEntity.containingPackage
61323
61434
  );
61324
61435
  const variableAccess = FieldAccessExpression.set(
@@ -61817,7 +61928,7 @@ var AliasTypeAndExtensionMembersAccessLowering = class extends ExecutableCodeLow
61817
61928
  setter,
61818
61929
  receiver,
61819
61930
  args,
61820
- this._ctx.ectx.standardTypes.none
61931
+ this._ctx.ectx.standardTypes.nullType
61821
61932
  );
61822
61933
  return new ExpressionStatement3(callExpression2, left.sourceLocation);
61823
61934
  }
@@ -61848,7 +61959,7 @@ var AliasTypeAndExtensionMembersAccessLowering = class extends ExecutableCodeLow
61848
61959
  setter,
61849
61960
  receiverTempAssignment ?? receiverTempAccess,
61850
61961
  args,
61851
- this._ctx.ectx.standardTypes.none
61962
+ this._ctx.ectx.standardTypes.nullType
61852
61963
  );
61853
61964
  const statement = new ExpressionStatement3(callExpression2, left.sourceLocation);
61854
61965
  return { statement, tempVariables };
@@ -62047,7 +62158,7 @@ var OverloadedConstructorsLowering = class {
62047
62158
  const isEmptyCheck = new BinaryExpression3(
62048
62159
  VariableAccessExpression.get(parameter.entity),
62049
62160
  5 /* Equals */,
62050
- new NoneLiteral(void 0),
62161
+ new NullLiteral(void 0),
62051
62162
  this._ctx.ectx.standardTypes.yesNo,
62052
62163
  void 0,
62053
62164
  void 0
@@ -62243,13 +62354,24 @@ var MiscLowering = class {
62243
62354
  }
62244
62355
  }
62245
62356
  }
62246
- static resolveComputedNames(state) {
62357
+ static resolveComputedNames(ectx, state) {
62358
+ const sourcePackageEntities = /* @__PURE__ */ new Set();
62247
62359
  for (const pkg of state.packages) {
62248
62360
  for (const packageMember of pkg.entity.members) {
62249
62361
  if (packageMember.kind === "type-or-extension") {
62250
62362
  this.resolveComputedNamesOfTypeMembers(packageMember);
62251
62363
  }
62252
62364
  }
62365
+ sourcePackageEntities.add(pkg.entity);
62366
+ }
62367
+ for (const packageEntity of ectx.entityMap.enumerateAllPackageEntities()) {
62368
+ if (!sourcePackageEntities.has(packageEntity)) {
62369
+ for (const packageMember of packageEntity.members) {
62370
+ if (packageMember.kind === "type-or-extension") {
62371
+ this.resolveComputedNamesOfTypeMembers(packageMember);
62372
+ }
62373
+ }
62374
+ }
62253
62375
  }
62254
62376
  }
62255
62377
  static resolveComputedNamesOfTypeMembers(type) {
@@ -62721,15 +62843,15 @@ var FunctionObjectLowering = class _FunctionObjectLowering extends ExecutableCod
62721
62843
  }
62722
62844
  let resultExpression;
62723
62845
  if (this._ctx.isOptionalChaining(node)) {
62724
- const noneCheck = new BinaryExpression3(
62846
+ const nullCheck = new BinaryExpression3(
62725
62847
  receiverTempGetAccess,
62726
62848
  5 /* Equals */,
62727
- new NoneLiteral(void 0),
62849
+ new NullLiteral(void 0),
62728
62850
  this._ctx.ectx.standardTypes.yesNo,
62729
62851
  void 0,
62730
62852
  void 0
62731
62853
  );
62732
- const firstExpression = new NoneLiteral(void 0);
62854
+ const firstExpression = new NullLiteral(void 0);
62733
62855
  const expressions = new Array();
62734
62856
  if (boundMethodTempAssignment !== void 0) {
62735
62857
  expressions.push(boundMethodTempAssignment);
@@ -62740,7 +62862,7 @@ var FunctionObjectLowering = class _FunctionObjectLowering extends ExecutableCod
62740
62862
  expressions.push(boundMethodTempGetAccess);
62741
62863
  const secondExpression = new CommaExpression(expressions, void 0);
62742
62864
  const ternaryExpression = new TernaryExpression(
62743
- noneCheck,
62865
+ nullCheck,
62744
62866
  firstExpression,
62745
62867
  secondExpression,
62746
62868
  this._ctx.ectx.type.ofExpression(node),
@@ -62862,6 +62984,9 @@ var UsagesLowering = class _UsagesLowering extends ExecutableCodeLowering {
62862
62984
  return preserveExpression();
62863
62985
  },
62864
62986
  transformMethodAccessExpression: (node) => {
62987
+ if (node.method.entity.details.isJavaScriptIteratorMethod && node.ifComputedThenKey === void 0) {
62988
+ node.ifComputedThenKey = this._ctx.createKeyForComputedNameWithSymbolKey(this._ctx.iteratorSymbolField);
62989
+ }
62865
62990
  const result = this._functionObjectLowering.tryLowerMethodAccessExpression(node);
62866
62991
  if (result !== void 0) {
62867
62992
  return result;
@@ -63556,7 +63681,7 @@ var ProxiedVariableAccessLowering = class extends ExecutableCodeLowering {
63556
63681
  }).toString();
63557
63682
  result = new TextLiteral(locationText, void 0);
63558
63683
  } else {
63559
- result = new NoneLiteral(void 0);
63684
+ result = new NullLiteral(void 0);
63560
63685
  }
63561
63686
  return result;
63562
63687
  }
@@ -63679,14 +63804,14 @@ var ReferenceExpressionLowering = class extends ExecutableCodeLowering {
63679
63804
  void 0,
63680
63805
  void 0
63681
63806
  );
63682
- return this.createSingleStatementFunctionLiteral([valueParameter], assignment, this._ctx.ectx.standardTypes.none);
63807
+ return this.createSingleStatementFunctionLiteral([valueParameter], assignment, this._ctx.ectx.standardTypes.nullType);
63683
63808
  }
63684
63809
  createSingleStatementFunctionLiteral(parameters, statement, returnType) {
63685
63810
  const functionBody = new BlockStatement([statement], void 0);
63686
63811
  return new FunctionLiteral3(parameters, functionBody, false, returnType, void 0);
63687
63812
  }
63688
63813
  createReference(reader, writer, sourceLocation) {
63689
- const args = new OrderedArguments([reader, writer ?? new NoneLiteral(void 0)], false);
63814
+ const args = new OrderedArguments([reader, writer ?? new NullLiteral(void 0)], false);
63690
63815
  const typeAccess = new TypeAccessExpression(this._ctx.referenceType, void 0);
63691
63816
  return new ConstructorCallExpression(
63692
63817
  this._ctx.referenceConstructor,
@@ -63758,7 +63883,7 @@ var VariableInitializersLowering = class {
63758
63883
  0 /* RegularFunction */,
63759
63884
  EmitPhaseName.ofPackageConstructor(pkg.entity.locale),
63760
63885
  [],
63761
- this._ctx.ectx.standardTypes.none,
63886
+ this._ctx.ectx.standardTypes.nullType,
63762
63887
  pkg.entity
63763
63888
  );
63764
63889
  entity.details.isPackageConstructor = true;
@@ -63861,7 +63986,7 @@ var IsExpressionLowering = class extends ExecutableCodeLowering {
63861
63986
  if (type.equals(this._ctx.ectx.standardTypes.text)) {
63862
63987
  return { expression: this.createTypeOfCheck(expression.expression, "string", expression.sourceLocation) };
63863
63988
  }
63864
- if (type.equals(this._ctx.ectx.standardTypes.none)) {
63989
+ if (type.equals(this._ctx.ectx.standardTypes.nullType)) {
63865
63990
  return { expression: this.createTypeOfCheck(expression.expression, "undefined", expression.sourceLocation) };
63866
63991
  }
63867
63992
  if (type.equals(this._ctx.ectx.standardTypes.func)) {
@@ -63893,7 +64018,7 @@ var IsExpressionLowering = class extends ExecutableCodeLowering {
63893
64018
  return { expression: new BooleanLiteral(false, void 0) };
63894
64019
  }
63895
64020
  canCheckType(type) {
63896
- if (type.equals(this._ctx.ectx.standardTypes.integer) || type.equals(this._ctx.ectx.standardTypes.number) || type.equals(this._ctx.ectx.standardTypes.yesNo) || type.equals(this._ctx.ectx.standardTypes.text) || type.equals(this._ctx.ectx.standardTypes.none) || type.equals(this._ctx.ectx.standardTypes.func)) {
64021
+ if (type.equals(this._ctx.ectx.standardTypes.integer) || type.equals(this._ctx.ectx.standardTypes.number) || type.equals(this._ctx.ectx.standardTypes.yesNo) || type.equals(this._ctx.ectx.standardTypes.text) || type.equals(this._ctx.ectx.standardTypes.nullType) || type.equals(this._ctx.ectx.standardTypes.func)) {
63897
64022
  return true;
63898
64023
  }
63899
64024
  type = this._ctx.ectx.unaliasType(type);
@@ -64082,13 +64207,13 @@ var IrBuilder = class {
64082
64207
  }
64083
64208
  build() {
64084
64209
  Debug.assert(this._typesCreatedFromAnonymousTypes.length === 0);
64085
- const sourceFileMembers = this._analyzer.getSourceFileMembers(this._sourceFile.getSyntaxNode());
64086
- const declarations = this.buildPackageMemberDeclarationList(
64087
- this._sourceFile.getSyntaxNode().declarationList,
64088
- sourceFileMembers
64089
- );
64210
+ const sourceFileNode = this._sourceFile.getSyntaxNode();
64211
+ const sourceFileMembers = this._analyzer.getSourceFileMembers(sourceFileNode);
64212
+ const declarations = this.buildPackageMemberDeclarationList(sourceFileNode.declarationList, sourceFileMembers);
64090
64213
  declarations.push(...this._typesCreatedFromAnonymousTypes);
64091
64214
  this._typesCreatedFromAnonymousTypes.length = 0;
64215
+ const translations = this.buildTextTranslationDeclarationList(sourceFileNode.declarationList);
64216
+ declarations.push(...translations);
64092
64217
  return declarations;
64093
64218
  }
64094
64219
  buildPackageMemberDeclarationList(declarationList, sourceFileMembers) {
@@ -64096,8 +64221,9 @@ var IrBuilder = class {
64096
64221
  const packageConstructorsAndEntryPoints = new Array();
64097
64222
  for (const declaration of flattenPackageMemberDeclarationList(declarationList)) {
64098
64223
  switch (declaration.kind) {
64099
- case 122 /* TranslationsDeclaration */:
64100
- continue;
64224
+ case 122 /* TranslationsDeclaration */: {
64225
+ break;
64226
+ }
64101
64227
  case 20 /* PackageAliasTypeDeclaration */: {
64102
64228
  const irDeclaration = this.buildPackageAliasTypeDeclaration(declaration);
64103
64229
  if (irDeclaration !== void 0) {
@@ -64125,7 +64251,7 @@ var IrBuilder = class {
64125
64251
  break;
64126
64252
  }
64127
64253
  case 26 /* PackageFunctionTypeDeclaration */:
64128
- continue;
64254
+ break;
64129
64255
  case 31 /* PackageStructuredTypeDeclaration */: {
64130
64256
  const irDeclaration = this.buildPackageStructuredTypeDeclaration(declaration);
64131
64257
  if (irDeclaration !== void 0) {
@@ -64190,7 +64316,7 @@ var IrBuilder = class {
64190
64316
  0 /* RegularFunction */,
64191
64317
  EmitPhaseName.ofPackageConstructor(containingPackage.locale),
64192
64318
  [],
64193
- this._entityMap.getType(this._analyzer.originalStandardTypes.none),
64319
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType),
64194
64320
  containingPackage
64195
64321
  );
64196
64322
  entity.details.isAsync = this._analyzer.checkBlockInvokesAsyncMethods(declaration.block);
@@ -64365,7 +64491,7 @@ var IrBuilder = class {
64365
64491
  0 /* RegularFunction */,
64366
64492
  EmitPhaseName.ofPackageRunFunction(containingPackage.locale),
64367
64493
  [],
64368
- this._entityMap.getType(this._analyzer.originalStandardTypes.none),
64494
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType),
64369
64495
  containingPackage
64370
64496
  );
64371
64497
  entity.details.isAsync = this._analyzer.checkBlockInvokesAsyncMethods(declaration.block);
@@ -64675,7 +64801,7 @@ var IrBuilder = class {
64675
64801
  createDefaultStructuredTypeConstructor(entity, info) {
64676
64802
  const valueParameters = entity.getValueParameters().map((p) => {
64677
64803
  const entity2 = this._entityMap.getVariableEntity(p);
64678
- const defaultValue = p.subkind === "parameter" && p.isOptional() ? new NoneLiteral(void 0) : void 0;
64804
+ const defaultValue = p.subkind === "parameter" && p.isOptional() ? new NullLiteral(void 0) : void 0;
64679
64805
  return new ValueParameterDeclaration(entity2, defaultValue, false, void 0);
64680
64806
  });
64681
64807
  const statements = [];
@@ -64718,8 +64844,8 @@ var IrBuilder = class {
64718
64844
  const notEmptyCheck = new BinaryExpression3(
64719
64845
  parameterAccess.clone(),
64720
64846
  6 /* NotEquals */,
64721
- new NoneLiteral(void 0),
64722
- this._entityMap.getType(this._analyzer.originalStandardTypes.none),
64847
+ new NullLiteral(void 0),
64848
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType),
64723
64849
  void 0,
64724
64850
  void 0
64725
64851
  );
@@ -65191,9 +65317,6 @@ var IrBuilder = class {
65191
65317
  case 64 /* BinaryExpression */:
65192
65318
  result = this.buildBinaryExpression(expression);
65193
65319
  break;
65194
- case 66 /* FunctionBlockLiteral */:
65195
- result = this.buildFunctionBlockLiteral(expression);
65196
- break;
65197
65320
  case 68 /* CallExpression */:
65198
65321
  result = this.buildCallExpression(expression);
65199
65322
  break;
@@ -65213,6 +65336,9 @@ var IrBuilder = class {
65213
65336
  case 65 /* FunctionLiteral */:
65214
65337
  result = this.buildFunctionLiteral(expression);
65215
65338
  break;
65339
+ case 66 /* FunctionBlockLiteral */:
65340
+ result = this.buildFunctionBlockLiteral(expression);
65341
+ break;
65216
65342
  case 73 /* ParenthesizedExpression */:
65217
65343
  result = this.buildParenthesizedExpression(expression);
65218
65344
  break;
@@ -65268,7 +65394,7 @@ var IrBuilder = class {
65268
65394
  }
65269
65395
  let targetType = this._analyzer.getTargetTypeOfExpression(expression);
65270
65396
  if (targetType !== void 0) {
65271
- targetType = unaliasType(this._analyzer.excludeNoneFromType(targetType));
65397
+ targetType = unaliasType(this._analyzer.excludeNullFromType(targetType));
65272
65398
  }
65273
65399
  if (targetType !== void 0) {
65274
65400
  const expressionType = this._analyzer.type.ofExpression(expression);
@@ -65448,22 +65574,6 @@ var IrBuilder = class {
65448
65574
  }
65449
65575
  return new BinaryExpression3(left, operatorKind, right, type, operator, this.getSourceLocation(expression));
65450
65576
  }
65451
- buildFunctionBlockLiteral(expression) {
65452
- const valueParameters = this._analyzer.getFunctionBlockLiteralValueParameters(expression).map((p) => new ValueParameterDeclaration(
65453
- this._entityMap.getVariableEntity(p),
65454
- void 0,
65455
- false,
65456
- void 0
65457
- ));
65458
- const body = this.buildFunctionBlockOfFunction(
65459
- expression.block,
65460
- this._analyzer.resultLocalVariableEntity.ofFunctionBlockLiteral(expression)
65461
- );
65462
- const type = this._analyzer.type.ofFunctionBlockLiteral(expression);
65463
- const isAsync = type.isAsync();
65464
- const returnType = this._entityMap.getType(type.getReturnType());
65465
- return new FunctionLiteral3(valueParameters, body, isAsync, returnType, this.getSourceLocation(expression));
65466
- }
65467
65577
  buildCallExpression(expression) {
65468
65578
  const meaning = this._analyzer.getCallExpressionMeaning(expression);
65469
65579
  switch (meaning.kind) {
@@ -65682,6 +65792,22 @@ var IrBuilder = class {
65682
65792
  this.buildAndSaveTypeIfIsAnonymousTypeSpecifier(expression.returnTypeAnnotation?.typeSpecifier);
65683
65793
  return new FunctionLiteral3(valueParameters, body, isAsync, returnType, this.getSourceLocation(expression));
65684
65794
  }
65795
+ buildFunctionBlockLiteral(expression) {
65796
+ const valueParameters = this._analyzer.getFunctionBlockLiteralValueParameters(expression).map((p) => new ValueParameterDeclaration(
65797
+ this._entityMap.getVariableEntity(p),
65798
+ void 0,
65799
+ false,
65800
+ void 0
65801
+ ));
65802
+ const body = this.buildFunctionBlockOfFunction(
65803
+ expression.block,
65804
+ this._analyzer.resultLocalVariableEntity.ofFunctionBlockLiteral(expression)
65805
+ );
65806
+ const type = this._analyzer.type.ofFunctionBlockLiteral(expression);
65807
+ const isAsync = type.isAsync();
65808
+ const returnType = this._entityMap.getType(type.getReturnType());
65809
+ return new FunctionLiteral3(valueParameters, body, isAsync, returnType, this.getSourceLocation(expression));
65810
+ }
65685
65811
  buildParenthesizedExpression(expression) {
65686
65812
  return this.buildExpression(expression.expression);
65687
65813
  }
@@ -65878,7 +66004,7 @@ var IrBuilder = class {
65878
66004
  Debug.assertNotNull(originalSetter);
65879
66005
  const setAccessor = new AccessedFunction5(
65880
66006
  this._entityMap.getSetterEntity(originalSetter),
65881
- this._entityMap.getType(this._analyzer.originalStandardTypes.none)
66007
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType)
65882
66008
  );
65883
66009
  return { kind: 1 /* Set */, setAccessor };
65884
66010
  }
@@ -65889,7 +66015,7 @@ var IrBuilder = class {
65889
66015
  Debug.assertNotNull(originalSetter);
65890
66016
  const getAccessor = new AccessedFunction5(
65891
66017
  this._entityMap.getGetterEntity(originalGetter),
65892
- this._entityMap.getType(this._analyzer.originalStandardTypes.none)
66018
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType)
65893
66019
  );
65894
66020
  const setAccessor = new AccessedFunction5(
65895
66021
  this._entityMap.getSetterEntity(originalSetter),
@@ -65917,7 +66043,7 @@ var IrBuilder = class {
65917
66043
  Debug.assertNotNull(originalSetter);
65918
66044
  const setAccessor = new AccessedFunction5(
65919
66045
  this._entityMap.getSetterEntity(originalSetter),
65920
- this._entityMap.getType(this._analyzer.originalStandardTypes.none)
66046
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType)
65921
66047
  );
65922
66048
  return { kind: 1 /* Set */, setAccessor };
65923
66049
  }
@@ -65928,7 +66054,7 @@ var IrBuilder = class {
65928
66054
  Debug.assertNotNull(originalSetter);
65929
66055
  const getAccessor = new AccessedFunction5(
65930
66056
  this._entityMap.getGetterEntity(originalGetter),
65931
- this._entityMap.getType(this._analyzer.originalStandardTypes.none)
66057
+ this._entityMap.getType(this._analyzer.originalStandardTypes.nullType)
65932
66058
  );
65933
66059
  const setAccessor = new AccessedFunction5(
65934
66060
  this._entityMap.getSetterEntity(originalSetter),
@@ -65950,7 +66076,7 @@ var IrBuilder = class {
65950
66076
  if (expression.secondExpression !== void 0) {
65951
66077
  secondExpression = this.buildExpression(expression.secondExpression);
65952
66078
  } else {
65953
- secondExpression = new NoneLiteral(void 0);
66079
+ secondExpression = new NullLiteral(void 0);
65954
66080
  }
65955
66081
  const type = this._entityMap.getType(this._analyzer.type.ofExpression(expression));
65956
66082
  return new TernaryExpression(
@@ -65996,8 +66122,8 @@ var IrBuilder = class {
65996
66122
  return new BooleanLiteral(true, this.getSourceLocation(expression));
65997
66123
  case 53 /* No */:
65998
66124
  return new BooleanLiteral(false, this.getSourceLocation(expression));
65999
- case 57 /* None */:
66000
- return new NoneLiteral(this.getSourceLocation(expression));
66125
+ case 57 /* Null */:
66126
+ return new NullLiteral(this.getSourceLocation(expression));
66001
66127
  default:
66002
66128
  Debug.never(expression.keyword);
66003
66129
  }
@@ -66327,6 +66453,70 @@ var IrBuilder = class {
66327
66453
  generateLoopLabel() {
66328
66454
  return `lb${this._id++}`;
66329
66455
  }
66456
+ buildTextTranslationDeclarationList(declarationList) {
66457
+ const result = [];
66458
+ for (const group of declarationList.elements) {
66459
+ if (group.kind === 122 /* TranslationsDeclaration */) {
66460
+ for (const element of group.translationList.elements) {
66461
+ if (element.kind === 140 /* TextTranslationDeclaration */) {
66462
+ const declaration = this.buildTextTranslationDeclaration(element);
66463
+ result.push(declaration);
66464
+ }
66465
+ }
66466
+ }
66467
+ }
66468
+ return result;
66469
+ }
66470
+ buildTextTranslationDeclaration(translation) {
66471
+ let sourceText;
66472
+ if (translation.sourceText.kind === 0 /* Token */ && translation.sourceText.tokenKind === 6 /* TextLiteral */) {
66473
+ sourceText = unescapeText(withoutQuotes(translation.sourceText.value));
66474
+ }
66475
+ let translatedText;
66476
+ if (translation.translatedTextOrTranslationFunction.kind === 0 /* Token */ && translation.translatedTextOrTranslationFunction.tokenKind === 6 /* TextLiteral */) {
66477
+ translatedText = unescapeText(withoutQuotes(translation.translatedTextOrTranslationFunction.value));
66478
+ }
66479
+ if (sourceText !== void 0 && translatedText !== void 0) {
66480
+ return new TextTranslationDeclaration3(
66481
+ sourceText,
66482
+ void 0,
66483
+ translatedText,
66484
+ void 0,
66485
+ this.getSourceLocation(translation)
66486
+ );
66487
+ }
66488
+ const textTemplateDeclaration = this.createTextTemplateDeclaration(translation.sourceText);
66489
+ let translationFunction;
66490
+ if (translation.translatedTextOrTranslationFunction.kind === 65 /* FunctionLiteral */) {
66491
+ translationFunction = this.buildFunctionLiteral(translation.translatedTextOrTranslationFunction);
66492
+ } else if (translation.translatedTextOrTranslationFunction.kind === 66 /* FunctionBlockLiteral */) {
66493
+ translationFunction = this.buildFunctionBlockLiteral(translation.translatedTextOrTranslationFunction);
66494
+ } else {
66495
+ }
66496
+ return new TextTranslationDeclaration3(
66497
+ textTemplateDeclaration.fragments.join("_"),
66498
+ textTemplateDeclaration,
66499
+ void 0,
66500
+ translationFunction,
66501
+ this.getSourceLocation(translation)
66502
+ );
66503
+ }
66504
+ createTextTemplateDeclaration(sourceText) {
66505
+ const fragments = [];
66506
+ const parameters = [];
66507
+ if (sourceText.kind === 141 /* TextTemplateDeclaration */) {
66508
+ fragments.push(unescapeText(withoutTemplateQuotes(sourceText.head.value)));
66509
+ sourceText.spanList.spans.forEach((e) => {
66510
+ fragments.push(unescapeText(withoutTemplateQuotes(e.text.value)));
66511
+ const originalEntity = this._analyzer.entity.ofTranslationTextTemplateParameterDeclaration(e.parameter);
66512
+ const entity = this._entityMap.getVariableEntity(originalEntity);
66513
+ parameters.push(entity);
66514
+ });
66515
+ } else {
66516
+ fragments.push(unescapeText(withoutQuotes(sourceText.value)));
66517
+ }
66518
+ return new TextTemplateDeclaration3(fragments, parameters, this.getSourceLocation(sourceText));
66519
+ }
66330
66520
  getSourceLocation(node) {
66331
66521
  const range = node.rangeWithoutTrivia;
66332
66522
  const start = this._sourceFile.getPositionAt(range.start);
@@ -66382,6 +66572,7 @@ var _IrToJs = class _IrToJs {
66382
66572
  return this.convertPackageVariantTypeDeclaration(declaration);
66383
66573
  case 26 /* PackageVariableGetterDeclaration */:
66384
66574
  case 27 /* PackageVariableSetterDeclaration */:
66575
+ case 99 /* TextTranslationDeclaration */:
66385
66576
  throw new EmitterError("Unexpected declaration.", declaration);
66386
66577
  default:
66387
66578
  Debug.never(declaration);
@@ -66715,8 +66906,8 @@ var _IrToJs = class _IrToJs {
66715
66906
  return this.convertCallExpression(expression);
66716
66907
  case 11 /* CharLiteral */:
66717
66908
  return this.convertCharLiteral(expression);
66718
- case 16 /* NoneLiteral */:
66719
- return this.convertNoneLiteral(expression);
66909
+ case 16 /* NullLiteral */:
66910
+ return this.convertNullLiteral(expression);
66720
66911
  case 30 /* IndexedAccessExpression */:
66721
66912
  return this.convertIndexedAccessExpression(expression);
66722
66913
  case 31 /* IntegerLiteral */:
@@ -66827,7 +67018,7 @@ var _IrToJs = class _IrToJs {
66827
67018
  this.addNodeLocation(result, expression);
66828
67019
  return result;
66829
67020
  }
66830
- convertNoneLiteral(expression) {
67021
+ convertNullLiteral(expression) {
66831
67022
  const result = js.identifier("undefined");
66832
67023
  this.addNodeLocation(result, expression);
66833
67024
  return result;
@@ -67561,7 +67752,7 @@ __decorateClass([
67561
67752
  ], _IrToJs.prototype, "convertCharLiteral", 1);
67562
67753
  __decorateClass([
67563
67754
  debugStack()
67564
- ], _IrToJs.prototype, "convertNoneLiteral", 1);
67755
+ ], _IrToJs.prototype, "convertNullLiteral", 1);
67565
67756
  __decorateClass([
67566
67757
  debugStack()
67567
67758
  ], _IrToJs.prototype, "convertIndexedAccessExpression", 1);
@@ -67833,7 +68024,13 @@ var Emitter = class _Emitter {
67833
68024
  }).flatMap((d) => d);
67834
68025
  const irPackage = new Package([], declarationsOfSourceFiles, [], void 0);
67835
68026
  const entity = this._entityMap.getPackageEntity(this._analyzer.entity.ofPackage(pkg));
67836
- entity.members = Array.from(new Set(Array.from(entity.members).concat(irPackage.declarations.map((d) => d.entity))));
68027
+ const entities = [];
68028
+ irPackage.declarations.forEach((d) => {
68029
+ if (d.kind !== 99 /* TextTranslationDeclaration */) {
68030
+ entities.push(d.entity);
68031
+ }
68032
+ });
68033
+ entity.members = Array.from(new Set(Array.from(entity.members).concat(entities)));
67837
68034
  return new EmitterPackage(irPackage, entity);
67838
68035
  }
67839
68036
  enumerateEmittingSourcePackages() {
@@ -67856,7 +68053,7 @@ var Emitter = class _Emitter {
67856
68053
  false,
67857
68054
  new OrderedArguments([], false),
67858
68055
  o.modifiers.isAsync(),
67859
- this._ectx.standardTypes.none,
68056
+ this._ectx.standardTypes.nullType,
67860
68057
  void 0
67861
68058
  );
67862
68059
  return new ExpressionStatement3(expression, void 0);
@@ -67868,7 +68065,7 @@ var Emitter = class _Emitter {
67868
68065
  0 /* RegularFunction */,
67869
68066
  mainFunctionName,
67870
68067
  [],
67871
- this._ectx.standardTypes.none,
68068
+ this._ectx.standardTypes.nullType,
67872
68069
  containingPackage
67873
68070
  );
67874
68071
  entity.details.isAsync = isAsyncFunction;
@@ -67942,6 +68139,7 @@ var Emitter = class _Emitter {
67942
68139
  break;
67943
68140
  case 26 /* PackageVariableGetterDeclaration */:
67944
68141
  case 27 /* PackageVariableSetterDeclaration */:
68142
+ case 99 /* TextTranslationDeclaration */:
67945
68143
  break;
67946
68144
  default:
67947
68145
  Debug.never(declaration);
@@ -68102,6 +68300,7 @@ var PackageMembersSorter = class {
68102
68300
  break;
68103
68301
  case 26 /* PackageVariableGetterDeclaration */:
68104
68302
  case 27 /* PackageVariableSetterDeclaration */:
68303
+ case 99 /* TextTranslationDeclaration */:
68105
68304
  otherDeclarations.push(declaration);
68106
68305
  break;
68107
68306
  default:
@@ -68143,7 +68342,9 @@ var DeclarationRenamer = class _DeclarationRenamer {
68143
68342
  makePackageMemberNamesUnique(pkg, reservedPackageLevelNames) {
68144
68343
  const names = new Set(reservedPackageLevelNames);
68145
68344
  for (const declaration of pkg.declarations) {
68146
- this.makeEntityNameUniqueAndAccumulate(declaration.entity, names);
68345
+ if (declaration.kind !== 99 /* TextTranslationDeclaration */) {
68346
+ this.makeEntityNameUniqueAndAccumulate(declaration.entity, names);
68347
+ }
68147
68348
  }
68148
68349
  this.renameDeclarationsInTopLevelStatements(pkg.leadingStatements, names);
68149
68350
  this.renameDeclarationsInTopLevelStatements(pkg.trailingStatements, names);
@@ -68168,6 +68369,7 @@ var DeclarationRenamer = class _DeclarationRenamer {
68168
68369
  break;
68169
68370
  case 26 /* PackageVariableGetterDeclaration */:
68170
68371
  case 27 /* PackageVariableSetterDeclaration */:
68372
+ case 99 /* TextTranslationDeclaration */:
68171
68373
  break;
68172
68374
  default:
68173
68375
  Debug.never(declaration);