@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.
- package/build/Cli.js +3 -3
- package/build/api/Api.js +2 -2
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +40 -24
- package/build/{chunk-G4UMALLG.js → chunk-DJEEXP7U.js} +621 -419
- package/build/{chunk-CBYKP5SE.js → chunk-VYUD26HA.js} +2 -2
- package/build/{chunk-6OPBY3SK.js → chunk-ZZKHAAAX.js} +1 -1
- package/build/types/analysis/Analyzer.d.ts +11 -10
- package/build/types/analysis/NodeTypeUtils.d.ts +1 -1
- package/build/types/analysis/TypeNarrower.d.ts +1 -1
- package/build/types/analysis/WellKnownDeclarations.d.ts +3 -3
- package/build/types/analysis/semantic-context/SemanticContextBuilder.d.ts +1 -1
- package/build/types/analysis/semantic-context/TranslationTextTemplateSemanticContext.d.ts +2 -2
- package/build/types/diagnostic/DiagnosticCode.d.ts +1 -1
- package/build/types/emitter/EmitterContext.d.ts +2 -2
- package/build/types/emitter/Entities.d.ts +1 -0
- package/build/types/emitter/EntityMap.d.ts +1 -0
- package/build/types/emitter/IrBuilder.d.ts +4 -1
- package/build/types/emitter/IrToJs.d.ts +1 -1
- package/build/types/emitter/Transformer.d.ts +4 -2
- package/build/types/emitter/ir/Nodes.d.ts +26 -5
- package/build/types/emitter/ir/types.d.ts +4 -4
- package/build/types/entities/VariableEntity.d.ts +2 -2
- package/build/types/services/DisplayService.d.ts +3 -3
- package/build/types/tree/KeywordKind.d.ts +1 -1
- package/build/types/tree/NodeKind.d.ts +5 -5
- package/build/types/tree/green/Nodes.d.ts +28 -28
- package/build/types/tree/green/SyntaxFactory.d.ts +1 -1
- package/build/types/tree/red/Nodes.d.ts +42 -42
- package/build/types/ts-interop/Entities.d.ts +0 -1
- package/build/types/ts-interop/TsInteropContext.d.ts +1 -1
- package/build/types/types/ParameterType.d.ts +3 -3
- package/build/types/types/StandardTypes.d.ts +2 -2
- 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.
|
|
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
|
-
|
|
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["
|
|
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["
|
|
1446
|
-
NodeKind3[NodeKind3["
|
|
1447
|
-
NodeKind3[NodeKind3["
|
|
1448
|
-
NodeKind3[NodeKind3["
|
|
1449
|
-
NodeKind3[NodeKind3["
|
|
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
|
-
|
|
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: "
|
|
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 /*
|
|
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 /*
|
|
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
|
|
8477
|
+
var TextTranslationDeclaration = class extends BaseNode {
|
|
8478
8478
|
constructor(green, rangeStart, parent) {
|
|
8479
8479
|
super(green, rangeStart, parent);
|
|
8480
|
-
this.kind = 140 /*
|
|
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
|
|
8505
|
+
var TextTemplateDeclaration = class extends BaseNode {
|
|
8506
8506
|
constructor(green, rangeStart, parent) {
|
|
8507
8507
|
super(green, rangeStart, parent);
|
|
8508
|
-
this.kind = 141 /*
|
|
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
|
|
8529
|
+
var TextTemplateDeclarationSpanList = class extends BaseNode {
|
|
8530
8530
|
constructor(green, rangeStart, parent) {
|
|
8531
8531
|
super(green, rangeStart, parent);
|
|
8532
|
-
this.kind = 142 /*
|
|
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
|
|
8547
|
+
var TextTemplateDeclarationSpan = class extends BaseNode {
|
|
8548
8548
|
constructor(green, rangeStart, parent) {
|
|
8549
8549
|
super(green, rangeStart, parent);
|
|
8550
|
-
this.kind = 143 /*
|
|
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
|
|
8571
|
+
var TextTemplateParameterDeclaration = class extends BaseNode {
|
|
8572
8572
|
constructor(green, rangeStart, parent) {
|
|
8573
8573
|
super(green, rangeStart, parent);
|
|
8574
|
-
this.kind = 144 /*
|
|
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
|
|
12209
|
+
var TextTranslationDeclaration2 = class extends BaseNode2 {
|
|
12210
12210
|
constructor(sourceText, minusGreaterThanToken, translatedTextOrTranslationFunction) {
|
|
12211
12211
|
super();
|
|
12212
|
-
this.kind = 140 /*
|
|
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
|
|
12228
|
+
return new TextTranslationDeclaration(this, rangeStart, parent);
|
|
12229
12229
|
}
|
|
12230
12230
|
};
|
|
12231
|
-
var
|
|
12231
|
+
var TextTemplateDeclaration2 = class extends BaseNode2 {
|
|
12232
12232
|
constructor(head, spanList) {
|
|
12233
12233
|
super();
|
|
12234
|
-
this.kind = 141 /*
|
|
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
|
|
12247
|
+
return new TextTemplateDeclaration(this, rangeStart, parent);
|
|
12248
12248
|
}
|
|
12249
12249
|
};
|
|
12250
|
-
var
|
|
12250
|
+
var TextTemplateDeclarationSpanList2 = class extends BaseNode2 {
|
|
12251
12251
|
constructor(spans) {
|
|
12252
12252
|
super();
|
|
12253
|
-
this.kind = 142 /*
|
|
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
|
|
12263
|
+
return new TextTemplateDeclarationSpanList(this, rangeStart, parent);
|
|
12264
12264
|
}
|
|
12265
12265
|
};
|
|
12266
|
-
var
|
|
12266
|
+
var TextTemplateDeclarationSpan2 = class extends BaseNode2 {
|
|
12267
12267
|
constructor(parameter, text) {
|
|
12268
12268
|
super();
|
|
12269
|
-
this.kind = 143 /*
|
|
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
|
|
12282
|
+
return new TextTemplateDeclarationSpan(this, rangeStart, parent);
|
|
12283
12283
|
}
|
|
12284
12284
|
};
|
|
12285
|
-
var
|
|
12285
|
+
var TextTemplateParameterDeclaration2 = class extends BaseNode2 {
|
|
12286
12286
|
constructor(name, typeAnnotation) {
|
|
12287
12287
|
super();
|
|
12288
|
-
this.kind = 144 /*
|
|
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
|
|
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["
|
|
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 /*
|
|
13138
|
-
[288 /* TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator */]: "Target variable expression in the assignment statement cannot contain '?' operator used to check for '
|
|
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 /*
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
14388
|
+
let nullTypeIndex = -1;
|
|
14389
14389
|
if (this._analyzer !== void 0) {
|
|
14390
|
-
|
|
14390
|
+
nullTypeIndex = types.findIndex((t) => t.equals(this._analyzer.originalStandardTypes.nullType));
|
|
14391
14391
|
}
|
|
14392
|
-
if (
|
|
14393
|
-
const type =
|
|
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
|
-
|
|
15436
|
-
return this.type.
|
|
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
|
-
|
|
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.
|
|
19601
|
+
return this.parseNullCoalescingExpression(isFollowedByStatementBlock);
|
|
19602
19602
|
}
|
|
19603
|
-
|
|
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 /*
|
|
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 /*
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
27258
|
-
return node.kind === 83 /* KeywordExpression */ && node.keyword.keywordKind === 57 /*
|
|
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.
|
|
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
|
|
29459
|
-
return this.analyzer.
|
|
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.
|
|
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.
|
|
29535
|
+
return this._tsctx.standardTypes.nullType;
|
|
29504
29536
|
}
|
|
29505
29537
|
if ((type.flags & ts5.TypeFlags.Null) !== 0) {
|
|
29506
|
-
return this._tsctx.standardTypes.
|
|
29538
|
+
return this._tsctx.standardTypes.nullType;
|
|
29507
29539
|
}
|
|
29508
29540
|
if ((type.flags & ts5.TypeFlags.Void) !== 0) {
|
|
29509
|
-
return this._tsctx.standardTypes.
|
|
29541
|
+
return this._tsctx.standardTypes.nullType;
|
|
29510
29542
|
}
|
|
29511
29543
|
if ((type.flags & ts5.TypeFlags.Any) !== 0) {
|
|
29512
|
-
return this.
|
|
29544
|
+
return this.refObjectOrNull;
|
|
29513
29545
|
}
|
|
29514
29546
|
if ((type.flags & ts5.TypeFlags.Unknown) !== 0) {
|
|
29515
|
-
return this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 /*
|
|
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.
|
|
35204
|
-
targetTypeA = this._analyzer.
|
|
35205
|
-
const isTypeWhenTargetTypeIsANullable = this._analyzer.
|
|
35206
|
-
typeWhenTargetTypeIsA = this._analyzer.
|
|
35207
|
-
const isTargetTypeBNullable = this._analyzer.
|
|
35208
|
-
targetTypeB = this._analyzer.
|
|
35209
|
-
const isTypeWhenTargetTypeIsBNullable = this._analyzer.
|
|
35210
|
-
typeWhenTargetTypeIsB = this._analyzer.
|
|
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.
|
|
35239
|
-
derivedType = this._analyzer.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
40147
|
-
result = this._analyzer.
|
|
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
|
-
|
|
40185
|
+
getTypeAtComparisonWithNull(type, isEqual) {
|
|
40154
40186
|
if (isEqual) {
|
|
40155
|
-
return this._analyzer.
|
|
40187
|
+
return this._analyzer.includeNullToType(type, this.locale);
|
|
40156
40188
|
} else {
|
|
40157
|
-
return this._analyzer.
|
|
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.
|
|
40177
|
-
return isDeclaration ? this._initialType : this._analyzer.
|
|
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.
|
|
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.
|
|
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 /*
|
|
41887
|
-
if (cursor.sourceText.kind === 141 /*
|
|
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.
|
|
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
|
|
43018
|
-
|
|
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.
|
|
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
|
-
|
|
43467
|
+
includeNullToTypeIfExpressionValidOutermostOptionalChaining(type, node) {
|
|
43420
43468
|
let result = type;
|
|
43421
43469
|
if (this.isExpressionValidOutermostOptionalChaining(node)) {
|
|
43422
|
-
result = 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
|
-
* После преобразования метод `
|
|
43821
|
+
* После преобразования метод `canTypeBeNull` вернёт `true` для полученного типа.
|
|
43774
43822
|
* @example
|
|
43775
43823
|
* - Число -> Число
|
|
43776
43824
|
* - Число | Пусто -> Число
|
|
43777
|
-
* - Т: Объект? -> Т: Объект? (с флагом
|
|
43825
|
+
* - Т: Объект? -> Т: Объект? (с флагом isNullExcluded === true)
|
|
43778
43826
|
* - Т: Объект -> Т: Объект (без изменения)
|
|
43779
43827
|
*/
|
|
43780
|
-
|
|
43781
|
-
if (!this.
|
|
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
|
|
43834
|
+
const typesWithoutNull = new Array();
|
|
43787
43835
|
for (const composingType of type.originalTypes) {
|
|
43788
|
-
const
|
|
43789
|
-
if (!
|
|
43790
|
-
|
|
43836
|
+
const typeWithoutNull = this.excludeNullFromType(composingType);
|
|
43837
|
+
if (!typeWithoutNull.equals(this.originalStandardTypes.nullType)) {
|
|
43838
|
+
typesWithoutNull.push(typeWithoutNull);
|
|
43791
43839
|
}
|
|
43792
43840
|
}
|
|
43793
|
-
if (
|
|
43841
|
+
if (typesWithoutNull.length === 0) {
|
|
43794
43842
|
return type;
|
|
43795
|
-
} else if (
|
|
43796
|
-
return
|
|
43843
|
+
} else if (typesWithoutNull.length === 1) {
|
|
43844
|
+
return typesWithoutNull[0];
|
|
43797
43845
|
} else {
|
|
43798
|
-
return this.typeFactory.getUnionType(
|
|
43846
|
+
return this.typeFactory.getUnionType(typesWithoutNull);
|
|
43799
43847
|
}
|
|
43800
43848
|
}
|
|
43801
|
-
if (type.kind === "parameter" && this.
|
|
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.
|
|
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
|
-
|
|
43865
|
+
canTypeBeNull(type) {
|
|
43818
43866
|
type = unaliasType(type);
|
|
43819
43867
|
if (type.kind === "union") {
|
|
43820
|
-
return type.unaliasedFlattenedTypes.some((t) => t.equals(this.originalStandardTypes.
|
|
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.
|
|
43871
|
+
return this.canTypeParameterBeNull(type);
|
|
43824
43872
|
}
|
|
43825
|
-
if (type.equals(this.originalStandardTypes.
|
|
43873
|
+
if (type.equals(this.originalStandardTypes.nullType)) {
|
|
43826
43874
|
return true;
|
|
43827
43875
|
}
|
|
43828
43876
|
return false;
|
|
43829
43877
|
}
|
|
43830
|
-
|
|
43831
|
-
return type.constraint === void 0 || this.
|
|
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
|
-
* - Т: Объект? -> (Т: Объект?) | Пусто (см. метод
|
|
43889
|
+
* - Т: Объект? -> (Т: Объект?) | Пусто (см. метод isNullAssignableToType)
|
|
43842
43890
|
* - Т: Объект -> (Т: Объект) | Пусто
|
|
43843
43891
|
*/
|
|
43844
|
-
|
|
43845
|
-
if (this.
|
|
43892
|
+
includeNullToType(type, locale) {
|
|
43893
|
+
if (this.isNullAssignableToType(type)) {
|
|
43846
43894
|
return type;
|
|
43847
43895
|
}
|
|
43848
|
-
const
|
|
43849
|
-
let
|
|
43896
|
+
const nullType = this.getLocalizedStandardTypes(locale).nullType;
|
|
43897
|
+
let typesWithNull;
|
|
43850
43898
|
if (type.kind === "union") {
|
|
43851
|
-
|
|
43852
|
-
|
|
43899
|
+
typesWithNull = Array.from(type.originalTypes);
|
|
43900
|
+
typesWithNull.push(nullType);
|
|
43853
43901
|
} else {
|
|
43854
|
-
|
|
43902
|
+
typesWithNull = [type, nullType];
|
|
43855
43903
|
}
|
|
43856
|
-
return this.typeFactory.getUnionType(
|
|
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
|
-
|
|
43913
|
+
isNullAssignableToType(type) {
|
|
43866
43914
|
type = unaliasType(type);
|
|
43867
43915
|
if (type.kind === "union") {
|
|
43868
|
-
return type.unaliasedFlattenedTypes.find((t) => t.equals(this.originalStandardTypes.
|
|
43916
|
+
return type.unaliasedFlattenedTypes.find((t) => t.equals(this.originalStandardTypes.nullType)) !== void 0;
|
|
43869
43917
|
}
|
|
43870
|
-
if (type.equals(this.originalStandardTypes.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
45112
|
+
return this._analyzer.excludeNullFromType(type);
|
|
45065
45113
|
}
|
|
45066
45114
|
ofAssumptionExpression(node) {
|
|
45067
45115
|
const type = this.ofExpression(node.expression);
|
|
45068
|
-
return this._analyzer.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)).
|
|
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 /*
|
|
45333
|
-
return standardTypes.
|
|
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.
|
|
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)).
|
|
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)).
|
|
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 /*
|
|
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.
|
|
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 /*
|
|
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 /*
|
|
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).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 /*
|
|
49418
|
-
if (node.sourceText.kind === 141 /*
|
|
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.
|
|
49906
|
-
this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /*
|
|
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.
|
|
49938
|
-
this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /*
|
|
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.
|
|
49991
|
-
this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /*
|
|
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.
|
|
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.
|
|
50680
|
-
this.addDiagnostic(this._analyzer.createNodeDiagnostic(287 /*
|
|
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
|
|
51103
|
+
[typeParameterCount]
|
|
51056
51104
|
));
|
|
51057
51105
|
} else {
|
|
51058
51106
|
this.addDiagnostic(this._analyzer.createNodeDiagnostic(
|
|
51059
51107
|
270 /* ExpectedFrom0To1TypeArguments */,
|
|
51060
51108
|
nodeForDiagnostics,
|
|
51061
|
-
[requiredTypeParameterCount
|
|
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.
|
|
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
|
-
|
|
51167
|
-
|
|
51168
|
-
|
|
51169
|
-
|
|
51170
|
-
|
|
51171
|
-
|
|
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
|
-
|
|
51181
|
-
|
|
51221
|
+
switch (shadowedMember.shadowReason) {
|
|
51222
|
+
case 0 /* BaseMemberHasDifferentKind */: {
|
|
51182
51223
|
this.addDiagnostic(this._analyzer.createNodeDiagnostic(
|
|
51183
|
-
|
|
51224
|
+
335 /* DeclarationConflictsWithBaseTypeMember0 */,
|
|
51184
51225
|
nodeForDiagnostic,
|
|
51185
51226
|
[this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
|
|
51186
51227
|
));
|
|
51187
|
-
|
|
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
|
-
|
|
51248
|
+
336 /* DeclarationConflictsWithBaseTypeMember0AddOverrideModifier */,
|
|
51190
51249
|
nodeForDiagnostic,
|
|
51191
51250
|
[this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)]
|
|
51192
51251
|
));
|
|
51252
|
+
break;
|
|
51193
51253
|
}
|
|
51194
|
-
|
|
51195
|
-
|
|
51196
|
-
|
|
51197
|
-
|
|
51198
|
-
|
|
51199
|
-
|
|
51200
|
-
|
|
51201
|
-
|
|
51202
|
-
|
|
51203
|
-
|
|
51204
|
-
|
|
51205
|
-
|
|
51206
|
-
|
|
51207
|
-
|
|
51208
|
-
|
|
51209
|
-
|
|
51210
|
-
|
|
51211
|
-
this._diagnosticArgumentFactory.createDisplayableTypeMember(shadowedMember.value)
|
|
51212
|
-
|
|
51213
|
-
|
|
51214
|
-
|
|
51215
|
-
|
|
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
|
-
|
|
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
|
|
51518
|
-
if (this.
|
|
51519
|
-
this.
|
|
51568
|
+
get nullEntity() {
|
|
51569
|
+
if (this._null === void 0) {
|
|
51570
|
+
this._null = this.getLocalizedStructuredType(this._analyzer.originalWellKnownDeclarations.nullEntity);
|
|
51520
51571
|
}
|
|
51521
|
-
return this.
|
|
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.
|
|
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).
|
|
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).
|
|
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).
|
|
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).
|
|
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).
|
|
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).
|
|
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,
|
|
54527
|
+
constructor(_analyzer, _entity, isNullExcluded) {
|
|
54477
54528
|
this._analyzer = _analyzer;
|
|
54478
54529
|
this._entity = _entity;
|
|
54479
|
-
this.
|
|
54530
|
+
this.isNullExcluded = isNullExcluded;
|
|
54480
54531
|
this.kind = "parameter";
|
|
54481
54532
|
this._constraint = new Cached();
|
|
54482
54533
|
}
|
|
54483
54534
|
/**
|
|
54484
|
-
* Ограничение параметра типа с учётом флага {@link
|
|
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.
|
|
54490
|
-
result = this._analyzer.
|
|
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.
|
|
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
|
|
54587
|
-
if (this.
|
|
54588
|
-
const entity = this._wellKnownDeclarations.
|
|
54589
|
-
this.
|
|
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.
|
|
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
|
|
56984
|
+
var NullLiteral = class _NullLiteral {
|
|
56933
56985
|
constructor(sourceLocation) {
|
|
56934
56986
|
this.sourceLocation = sourceLocation;
|
|
56935
|
-
this.kind = 16 /*
|
|
56987
|
+
this.kind = 16 /* NullLiteral */;
|
|
56936
56988
|
}
|
|
56937
56989
|
clone() {
|
|
56938
|
-
return new
|
|
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 /*
|
|
57782
|
-
return this._ectx.standardTypes.
|
|
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.
|
|
57874
|
+
return this._ectx.standardTypes.nullType;
|
|
57793
57875
|
case 40 /* PrefixUnaryExpression */:
|
|
57794
|
-
return this._ectx.standardTypes.
|
|
57876
|
+
return this._ectx.standardTypes.nullType;
|
|
57795
57877
|
case 41 /* MeasureLiteral */:
|
|
57796
|
-
return this._ectx.standardTypes.
|
|
57878
|
+
return this._ectx.standardTypes.nullType;
|
|
57797
57879
|
case 42 /* ReferenceExpression */:
|
|
57798
|
-
return this._ectx.standardTypes.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
57877
|
-
return this.
|
|
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.
|
|
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.
|
|
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 /*
|
|
59600
|
-
result = this.config.
|
|
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 /*
|
|
59742
|
-
this.
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
60988
|
+
const declarations = [];
|
|
60989
|
+
pkg.ir.declarations.forEach((d) => {
|
|
60883
60990
|
if (d.kind === 24 /* PackageTypeDeclaration */) {
|
|
60884
60991
|
this.lowerPackageTypeDeclaration(d);
|
|
60885
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
62846
|
+
const nullCheck = new BinaryExpression3(
|
|
62725
62847
|
receiverTempGetAccess,
|
|
62726
62848
|
5 /* Equals */,
|
|
62727
|
-
new
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
64086
|
-
const
|
|
64087
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
64722
|
-
this._entityMap.getType(this._analyzer.originalStandardTypes.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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 /*
|
|
66000
|
-
return new
|
|
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 /*
|
|
66719
|
-
return this.
|
|
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
|
-
|
|
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, "
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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);
|