Skip to content

Commit 4fb10f1

Browse files
committed
Merge branch 'main' into only-suggest-param-codefixes-in-ts
2 parents 4056b38 + b0b8cda commit 4fb10f1

File tree

52 files changed

+554
-208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+554
-208
lines changed

src/compiler/checker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25081,7 +25081,7 @@ namespace ts {
2508125081
const substituteConstraints = !(checkMode && checkMode & CheckMode.Inferential) &&
2508225082
someType(type, isGenericTypeWithUnionConstraint) &&
2508325083
(isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode));
25084-
return substituteConstraints ? mapType(type, t => t.flags & TypeFlags.Instantiable && !isMappedTypeGenericIndexedAccess(t) ? getBaseConstraintOrType(t) : t) : type;
25084+
return substituteConstraints ? mapType(type, t => t.flags & TypeFlags.Instantiable ? getBaseConstraintOrType(t) : t) : type;
2508525085
}
2508625086

2508725087
function isExportOrExportExpression(location: Node) {

src/compiler/commandLineParser.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2498,7 +2498,7 @@ namespace ts {
24982498
const result: string[] = [];
24992499
result.push(`{`);
25002500
result.push(`${tab}"compilerOptions": {`);
2501-
result.push(`${tab}${tab}/* ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file)} */`);
2501+
result.push(`${tab}${tab}/* ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)} */`);
25022502
result.push("");
25032503
// Print out each row, aligning all the descriptions on the same column.
25042504
for (const entry of entries) {

src/compiler/diagnosticMessages.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -5852,7 +5852,6 @@
58525852
"code": 6930
58535853
},
58545854

5855-
58565855
"Variable '{0}' implicitly has an '{1}' type.": {
58575856
"category": "Error",
58585857
"code": 7005
@@ -6911,7 +6910,7 @@
69116910
"category": "Message",
69126911
"code": 95109
69136912
},
6914-
"Visit https://aka.ms/tsconfig.json to read more about this file": {
6913+
"Visit https://aka.ms/tsconfig to read more about this file": {
69156914
"category": "Message",
69166915
"code": 95110
69176916
},

src/executeCommandLine/executeCommandLine.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ namespace ts {
396396
output = [
397397
...output,
398398
...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMAND_LINE_FLAGS), cliCommands, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, /* afterOptionsDescription*/ undefined),
399-
...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS), configOpts, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsconfig-reference"))
399+
...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS), configOpts, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc"))
400400
];
401401

402402
for (const line of output) {
@@ -414,7 +414,7 @@ namespace ts {
414414

415415
function printAllHelp(sys: System, compilerOptions: readonly CommandLineOption[], buildOptions: readonly CommandLineOption[], watchOptions: readonly CommandLineOption[]) {
416416
let output: string[] = [...getHeader(sys,`${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];
417-
output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, /*subCategory*/ true, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsconfig-reference"))];
417+
output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, /*subCategory*/ true, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc"))];
418418
output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.WATCH_OPTIONS), watchOptions, /*subCategory*/ false, getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon))];
419419
output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.BUILD_OPTIONS), buildOptions, /*subCategory*/ false, formatMessage(/*_dummy*/ undefined, Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))];
420420
for (const line of output) {
@@ -1061,7 +1061,7 @@ namespace ts {
10611061
sys.writeFile(file, generateTSConfig(options, fileNames, sys.newLine));
10621062
const output: string[] = [sys.newLine, ...getHeader(sys,"Created a new tsconfig.json with:")];
10631063
output.push(getCompilerOptionsDiffValue(options, sys.newLine) + sys.newLine + sys.newLine);
1064-
output.push(`You can learn more at https://aka.ms/tsconfig.json` + sys.newLine);
1064+
output.push(`You can learn more at https://aka.ms/tsconfig` + sys.newLine);
10651065
for (const line of output) {
10661066
sys.write(line);
10671067
}

src/lib/es2015.core.d.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ interface ObjectConstructor {
263263
* @param target The target object to copy to.
264264
* @param source The source object from which to copy properties.
265265
*/
266-
assign<T, U>(target: T, source: U): T & U;
266+
assign<T extends {}, U>(target: T, source: U): T & U;
267267

268268
/**
269269
* Copy the values of all of the enumerable own properties from one or more source objects to a
@@ -272,7 +272,7 @@ interface ObjectConstructor {
272272
* @param source1 The first source object from which to copy properties.
273273
* @param source2 The second source object from which to copy properties.
274274
*/
275-
assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;
275+
assign<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;
276276

277277
/**
278278
* Copy the values of all of the enumerable own properties from one or more source objects to a
@@ -282,7 +282,7 @@ interface ObjectConstructor {
282282
* @param source2 The second source object from which to copy properties.
283283
* @param source3 The third source object from which to copy properties.
284284
*/
285-
assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
285+
assign<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
286286

287287
/**
288288
* Copy the values of all of the enumerable own properties from one or more source objects to a

src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl

+9-9
Original file line numberDiff line numberDiff line change
@@ -546,15 +546,6 @@
546546
</Str>
547547
<Disp Icon="Str" />
548548
</Item>
549-
<Item ItemId=";A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384" ItemType="0" PsrId="306" Leaf="true">
550-
<Str Cat="Text">
551-
<Val><![CDATA[A 'new' expression with type arguments must always be followed by a parenthesized argument list.]]></Val>
552-
<Tgt Cat="Text" Stat="Loc" Orig="New">
553-
<Val><![CDATA[具有类型参数的 "new" 表达式的后面必须始终是带括号的参数列表。]]></Val>
554-
</Tgt>
555-
</Str>
556-
<Disp Icon="Str" />
557-
</Item>
558549
<Item ItemId=";A_non_dry_build_would_build_project_0_6357" ItemType="0" PsrId="306" Leaf="true">
559550
<Str Cat="Text">
560551
<Val><![CDATA[A non-dry build would build project '{0}']]></Val>
@@ -13806,6 +13797,15 @@
1380613797
</Str>
1380713798
<Disp Icon="Str" />
1380813799
</Item>
13800+
<Item ItemId=";Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635" ItemType="0" PsrId="306" Leaf="true">
13801+
<Str Cat="Text">
13802+
<Val><![CDATA[Type '{0}' has no signatures for which the type argument list is applicable.]]></Val>
13803+
<Tgt Cat="Text" Stat="Loc" Orig="New">
13804+
<Val><![CDATA[类型“{0}”没有类型参数列表适用的签名。]]></Val>
13805+
</Tgt>
13806+
</Str>
13807+
<Disp Icon="Str" />
13808+
</Item>
1380913809
<Item ItemId=";Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739" ItemType="0" PsrId="306" Leaf="true">
1381013810
<Str Cat="Text">
1381113811
<Val><![CDATA[Type '{0}' is missing the following properties from type '{1}': {2}]]></Val>

src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl

+45-9
Original file line numberDiff line numberDiff line change
@@ -555,15 +555,6 @@
555555
</Str>
556556
<Disp Icon="Str" />
557557
</Item>
558-
<Item ItemId=";A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384" ItemType="0" PsrId="306" Leaf="true">
559-
<Str Cat="Text">
560-
<Val><![CDATA[A 'new' expression with type arguments must always be followed by a parenthesized argument list.]]></Val>
561-
<Tgt Cat="Text" Stat="Loc" Orig="New">
562-
<Val><![CDATA[Za výrazem new s argumenty typů musí vždy následovat seznam argumentů v závorkách.]]></Val>
563-
</Tgt>
564-
</Str>
565-
<Disp Icon="Str" />
566-
</Item>
567558
<Item ItemId=";A_non_dry_build_would_build_project_0_6357" ItemType="0" PsrId="306" Leaf="true">
568559
<Str Cat="Text">
569560
<Val><![CDATA[A non-dry build would build project '{0}']]></Val>
@@ -4569,6 +4560,24 @@
45694560
</Str>
45704561
<Disp Icon="Str" />
45714562
</Item>
4563+
<Item ItemId=";Decorator_function_return_type_0_is_not_assignable_to_type_1_1270" ItemType="0" PsrId="306" Leaf="true">
4564+
<Str Cat="Text">
4565+
<Val><![CDATA[Decorator function return type '{0}' is not assignable to type '{1}'.]]></Val>
4566+
<Tgt Cat="Text" Stat="Loc" Orig="New">
4567+
<Val><![CDATA[Návratový typ funkce dekoratéru {0} se nedá přiřadit k typu {1}.]]></Val>
4568+
</Tgt>
4569+
</Str>
4570+
<Disp Icon="Str" />
4571+
</Item>
4572+
<Item ItemId=";Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271" ItemType="0" PsrId="306" Leaf="true">
4573+
<Str Cat="Text">
4574+
<Val><![CDATA[Decorator function return type is '{0}' but is expected to be 'void' or 'any'.]]></Val>
4575+
<Tgt Cat="Text" Stat="Loc" Orig="New">
4576+
<Val><![CDATA[Návratový typ funkce dekoratéru je {0}, ale očekává se, že bude void nebo any.]]></Val>
4577+
</Tgt>
4578+
</Str>
4579+
<Disp Icon="Str" />
4580+
</Item>
45724581
<Item ItemId=";Decorators_are_not_valid_here_1206" ItemType="0" PsrId="306" Leaf="true">
45734582
<Str Cat="Text">
45744583
<Val><![CDATA[Decorators are not valid here.]]></Val>
@@ -11034,6 +11043,15 @@
1103411043
</Str>
1103511044
<Disp Icon="Str" />
1103611045
</Item>
11046+
<Item ItemId=";Resolution_modes_are_only_supported_when_moduleResolution_is_node12_or_nodenext_1452" ItemType="0" PsrId="306" Leaf="true">
11047+
<Str Cat="Text">
11048+
<Val><![CDATA[Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`.]]></Val>
11049+
<Tgt Cat="Text" Stat="Loc" Orig="New">
11050+
<Val><![CDATA[Režimy řešení se podporují pouze v případě, že moduleResolution je node12 nebo nodenext.]]></Val>
11051+
</Tgt>
11052+
</Str>
11053+
<Disp Icon="Str" />
11054+
</Item>
1103711055
<Item ItemId=";Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195" ItemType="0" PsrId="306" Leaf="true">
1103811056
<Str Cat="Text">
1103911057
<Val><![CDATA[Resolve 'keyof' to string valued property names only (no numbers or symbols).]]></Val>
@@ -13788,6 +13806,15 @@
1378813806
</Str>
1378913807
<Disp Icon="Str" />
1379013808
</Item>
13809+
<Item ItemId=";Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635" ItemType="0" PsrId="306" Leaf="true">
13810+
<Str Cat="Text">
13811+
<Val><![CDATA[Type '{0}' has no signatures for which the type argument list is applicable.]]></Val>
13812+
<Tgt Cat="Text" Stat="Loc" Orig="New">
13813+
<Val><![CDATA[U typu {0} nejsou žádné podpisy, pro které platí seznam argumentů obecného typu.]]></Val>
13814+
</Tgt>
13815+
</Str>
13816+
<Disp Icon="Str" />
13817+
</Item>
1379113818
<Item ItemId=";Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739" ItemType="0" PsrId="306" Leaf="true">
1379213819
<Str Cat="Text">
1379313820
<Val><![CDATA[Type '{0}' is missing the following properties from type '{1}': {2}]]></Val>
@@ -16335,6 +16362,15 @@
1633516362
</Str>
1633616363
<Disp Icon="Str" />
1633716364
</Item>
16365+
<Item ItemId=";resolution_mode_should_be_either_require_or_import_1453" ItemType="0" PsrId="306" Leaf="true">
16366+
<Str Cat="Text">
16367+
<Val><![CDATA[`resolution-mode` should be either `require` or `import`.]]></Val>
16368+
<Tgt Cat="Text" Stat="Loc" Orig="New">
16369+
<Val><![CDATA[resolution-mode by měl být buď require, nebo import.]]></Val>
16370+
</Tgt>
16371+
</Str>
16372+
<Disp Icon="Str" />
16373+
</Item>
1633816374
<Item ItemId=";rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107" ItemType="0" PsrId="306" Leaf="true">
1633916375
<Str Cat="Text">
1634016376
<Val><![CDATA['rootDirs' option is set, using it to resolve relative module name '{0}'.]]></Val>

src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl

+45-9
Original file line numberDiff line numberDiff line change
@@ -555,15 +555,6 @@
555555
</Str>
556556
<Disp Icon="Str" />
557557
</Item>
558-
<Item ItemId=";A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384" ItemType="0" PsrId="306" Leaf="true">
559-
<Str Cat="Text">
560-
<Val><![CDATA[A 'new' expression with type arguments must always be followed by a parenthesized argument list.]]></Val>
561-
<Tgt Cat="Text" Stat="Loc" Orig="New">
562-
<Val><![CDATA[Una expresión "new" con argumentos de tipo siempre debe ir seguida de una lista de argumentos entre paréntesis.]]></Val>
563-
</Tgt>
564-
</Str>
565-
<Disp Icon="Str" />
566-
</Item>
567558
<Item ItemId=";A_non_dry_build_would_build_project_0_6357" ItemType="0" PsrId="306" Leaf="true">
568559
<Str Cat="Text">
569560
<Val><![CDATA[A non-dry build would build project '{0}']]></Val>
@@ -4572,6 +4563,24 @@
45724563
</Str>
45734564
<Disp Icon="Str" />
45744565
</Item>
4566+
<Item ItemId=";Decorator_function_return_type_0_is_not_assignable_to_type_1_1270" ItemType="0" PsrId="306" Leaf="true">
4567+
<Str Cat="Text">
4568+
<Val><![CDATA[Decorator function return type '{0}' is not assignable to type '{1}'.]]></Val>
4569+
<Tgt Cat="Text" Stat="Loc" Orig="New">
4570+
<Val><![CDATA[El tipo de valor devuelto de la función Decorator "{0}" no se puede asignar al tipo "{1}".]]></Val>
4571+
</Tgt>
4572+
</Str>
4573+
<Disp Icon="Str" />
4574+
</Item>
4575+
<Item ItemId=";Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271" ItemType="0" PsrId="306" Leaf="true">
4576+
<Str Cat="Text">
4577+
<Val><![CDATA[Decorator function return type is '{0}' but is expected to be 'void' or 'any'.]]></Val>
4578+
<Tgt Cat="Text" Stat="Loc" Orig="New">
4579+
<Val><![CDATA[El tipo de valor devuelto de la función Decorator es "{0}" pero se espera que sea "void" o "any".]]></Val>
4580+
</Tgt>
4581+
</Str>
4582+
<Disp Icon="Str" />
4583+
</Item>
45754584
<Item ItemId=";Decorators_are_not_valid_here_1206" ItemType="0" PsrId="306" Leaf="true">
45764585
<Str Cat="Text">
45774586
<Val><![CDATA[Decorators are not valid here.]]></Val>
@@ -11037,6 +11046,15 @@
1103711046
</Str>
1103811047
<Disp Icon="Str" />
1103911048
</Item>
11049+
<Item ItemId=";Resolution_modes_are_only_supported_when_moduleResolution_is_node12_or_nodenext_1452" ItemType="0" PsrId="306" Leaf="true">
11050+
<Str Cat="Text">
11051+
<Val><![CDATA[Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`.]]></Val>
11052+
<Tgt Cat="Text" Stat="Loc" Orig="New">
11053+
<Val><![CDATA[Los modos de resolución solo se admiten cuando "moduleResolution" es "node12" o "nodenext".]]></Val>
11054+
</Tgt>
11055+
</Str>
11056+
<Disp Icon="Str" />
11057+
</Item>
1104011058
<Item ItemId=";Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195" ItemType="0" PsrId="306" Leaf="true">
1104111059
<Str Cat="Text">
1104211060
<Val><![CDATA[Resolve 'keyof' to string valued property names only (no numbers or symbols).]]></Val>
@@ -13791,6 +13809,15 @@
1379113809
</Str>
1379213810
<Disp Icon="Str" />
1379313811
</Item>
13812+
<Item ItemId=";Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635" ItemType="0" PsrId="306" Leaf="true">
13813+
<Str Cat="Text">
13814+
<Val><![CDATA[Type '{0}' has no signatures for which the type argument list is applicable.]]></Val>
13815+
<Tgt Cat="Text" Stat="Loc" Orig="New">
13816+
<Val><![CDATA[El tipo "{0}" no tiene firmas para las que sea aplicable la lista de argumentos de tipo.]]></Val>
13817+
</Tgt>
13818+
</Str>
13819+
<Disp Icon="Str" />
13820+
</Item>
1379413821
<Item ItemId=";Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739" ItemType="0" PsrId="306" Leaf="true">
1379513822
<Str Cat="Text">
1379613823
<Val><![CDATA[Type '{0}' is missing the following properties from type '{1}': {2}]]></Val>
@@ -16338,6 +16365,15 @@
1633816365
</Str>
1633916366
<Disp Icon="Str" />
1634016367
</Item>
16368+
<Item ItemId=";resolution_mode_should_be_either_require_or_import_1453" ItemType="0" PsrId="306" Leaf="true">
16369+
<Str Cat="Text">
16370+
<Val><![CDATA[`resolution-mode` should be either `require` or `import`.]]></Val>
16371+
<Tgt Cat="Text" Stat="Loc" Orig="New">
16372+
<Val><![CDATA["modo de resolución" debe ser "requerir" o "importar".]]></Val>
16373+
</Tgt>
16374+
</Str>
16375+
<Disp Icon="Str" />
16376+
</Item>
1634116377
<Item ItemId=";rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107" ItemType="0" PsrId="306" Leaf="true">
1634216378
<Str Cat="Text">
1634316379
<Val><![CDATA['rootDirs' option is set, using it to resolve relative module name '{0}'.]]></Val>

src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl

+9-9
Original file line numberDiff line numberDiff line change
@@ -555,15 +555,6 @@
555555
</Str>
556556
<Disp Icon="Str" />
557557
</Item>
558-
<Item ItemId=";A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384" ItemType="0" PsrId="306" Leaf="true">
559-
<Str Cat="Text">
560-
<Val><![CDATA[A 'new' expression with type arguments must always be followed by a parenthesized argument list.]]></Val>
561-
<Tgt Cat="Text" Stat="Loc" Orig="New">
562-
<Val><![CDATA[Une expression 'new' avec des arguments de type doit toujours être suivie d'une liste d'arguments entre parenthèses.]]></Val>
563-
</Tgt>
564-
</Str>
565-
<Disp Icon="Str" />
566-
</Item>
567558
<Item ItemId=";A_non_dry_build_would_build_project_0_6357" ItemType="0" PsrId="306" Leaf="true">
568559
<Str Cat="Text">
569560
<Val><![CDATA[A non-dry build would build project '{0}']]></Val>
@@ -13818,6 +13809,15 @@
1381813809
</Str>
1381913810
<Disp Icon="Str" />
1382013811
</Item>
13812+
<Item ItemId=";Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635" ItemType="0" PsrId="306" Leaf="true">
13813+
<Str Cat="Text">
13814+
<Val><![CDATA[Type '{0}' has no signatures for which the type argument list is applicable.]]></Val>
13815+
<Tgt Cat="Text" Stat="Loc" Orig="New">
13816+
<Val><![CDATA[Le type '{0}' n’a aucune signature pour laquelle la liste d’arguments de type est applicable.]]></Val>
13817+
</Tgt>
13818+
</Str>
13819+
<Disp Icon="Str" />
13820+
</Item>
1382113821
<Item ItemId=";Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739" ItemType="0" PsrId="306" Leaf="true">
1382213822
<Str Cat="Text">
1382313823
<Val><![CDATA[Type '{0}' is missing the following properties from type '{1}': {2}]]></Val>

0 commit comments

Comments
 (0)