bug fix #613
This commit is contained in:
parent
737071f6ac
commit
d185cd8de6
|
|
@ -1946,8 +1946,8 @@ typed_var_init_expression
|
|||
| identifier tkArrow lambda_function_body
|
||||
{
|
||||
var idList = new ident_list($1, @1);
|
||||
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, @1), @1);
|
||||
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), $3 as statement_list, @$);
|
||||
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @1), parametr_kind.none, null, @1), @1);
|
||||
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @1), $3 as statement_list, @$);
|
||||
}
|
||||
| tkRoundOpen tkRoundClose lambda_type_ref tkArrow lambda_function_body
|
||||
{
|
||||
|
|
@ -1968,7 +1968,7 @@ typed_var_init_expression
|
|||
idList.idents.Add(el.expressions[j] as ident);
|
||||
}
|
||||
|
||||
var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
|
||||
var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @2);
|
||||
|
||||
var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, @2), @2);
|
||||
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, $5 as statement_list, @$);
|
||||
|
|
@ -3643,8 +3643,8 @@ func_decl_lambda
|
|||
: identifier tkArrow lambda_function_body
|
||||
{
|
||||
var idList = new ident_list($1, @1);
|
||||
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, @1), @1);
|
||||
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), $3 as statement_list, @$);
|
||||
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @1), parametr_kind.none, null, @1), @1);
|
||||
$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), @1), $3 as statement_list, @$);
|
||||
}
|
||||
| tkRoundOpen tkRoundClose lambda_type_ref_noproctype tkArrow lambda_function_body
|
||||
{
|
||||
|
|
|
|||
|
|
@ -183,5 +183,6 @@ script=
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -400,7 +400,12 @@ namespace GPPGParserScanner
|
|||
var op = new op_type_node(Operators.Assignment);
|
||||
//_op_type_node.source_context = parsertools.GetTokenSourceContext();
|
||||
var ass = new assign(id, expr_l1, op.type);
|
||||
parsertools.create_source_context(ass, id, expr_l1);
|
||||
parsertools.create_source_context(ass, id, expr_l1); // дурацкая функция - если хотя бы у одного sc=null, то возвращает null
|
||||
if (ass.source_context == null)
|
||||
if (expr_l1.source_context != null)
|
||||
ass.source_context = expr_l1.source_context;
|
||||
else if (id.source_context != null)
|
||||
ass.source_context = id.source_context;
|
||||
sl.subnodes.Add(ass);
|
||||
sl.source_context = loc;
|
||||
return sl;
|
||||
|
|
|
|||
|
|
@ -1811,7 +1811,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
if (set_of_possible_functions.Count == 0 && indefinits.Count == 0)
|
||||
{
|
||||
return AddError<function_node>(new NoFunctionWithSameParametresNum(loc, is_alone_method_defined, first_function));
|
||||
return AddError<function_node>(new NoFunctionWithSameArguments(loc, is_alone_method_defined));
|
||||
}
|
||||
|
||||
//(ssyy) Инициализируем is_alone_defined
|
||||
|
|
|
|||
Loading…
Reference in a new issue