This commit is contained in:
Mikhalkovich Stanislav 2021-03-24 12:10:55 +03:00
parent 68e50baf9d
commit 4a96036947
7 changed files with 11 additions and 7 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "8";
public const string Build = "0";
public const string Revision = "2864";
public const string Revision = "2865";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=2864
%MINOR%=8
%REVISION%=2865
%COREVERSION%=0
%MAJOR%=3

View file

@ -4810,12 +4810,14 @@ func_decl_lambda
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, $8, sl, @$);
else $$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, @$);
}
| tkRoundOpen expr_l1 tkComma expr_l1_list lambda_type_ref optional_full_lambda_fp_list tkRoundClose rem_lambda
| tkRoundOpen expr_l1 tkComma expr_l1_list lambda_type_ref optional_full_lambda_fp_list tkRoundClose rem_lambda // optional_full_lambda_fp_list - òàê ñäåëàíî èç-çà êîíôëèêòîâ â ãðàìàòèêå
{
var pair = $8 as pair_type_stlist;
if ($5 is lambda_inferred_type)
{
// äîáàâèì ñþäà \(x,y)
var formal_pars = new formal_parameters();
var idd = $2 as ident;
if (idd==null)
@ -4879,6 +4881,7 @@ func_decl_lambda
| lambda_unpacked_params rem_lambda // ëÿìáäà ñ ðàñïàêîâêîé
{
var pair = $2 as pair_type_stlist;
// ïîêà ôîðìàëüíûå ïàðàìåòðû - null. Ðàñêðîåì èõ ñàõàðíûì âèçèòîðîì
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null,
new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @1), pair.exprs, @$);
($$ as function_lambda_definition).unpacked_params = $1 as List<ident_or_list>;

View file

@ -324,5 +324,6 @@ script=

View file

@ -1 +1 @@
3.8.0.2864
3.8.0.2865

View file

@ -1 +1 @@
!define VERSION '3.8.0.2864'
!define VERSION '3.8.0.2865'

View file

@ -2041,7 +2041,7 @@ namespace PascalABCCompiler.SyntaxTree
public override string UsesPath() => in_file.Value;
}
public class ident_or_list // Это для распаковки параметров в лямбдах \(x,y)
public class ident_or_list: expression // Это для распаковки параметров в лямбдах \(x,y)
{
// только одно поле - ненулевое!
public ident id;