From 27ca018cb144592f75bc64077f042636ccafef14 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Thu, 28 Jan 2021 16:38:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=20=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D1=8B=D0=B4=D1=83=D1=89=D0=B5=D0=BC=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HasCapturedLambdaParameterInInternalLambdaBody.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TreeConverter/TreeConversion/HasCapturedLambdaParameterInInternalLambdaBody.cs b/TreeConverter/TreeConversion/HasCapturedLambdaParameterInInternalLambdaBody.cs index 7e364c055..26430e0f0 100644 --- a/TreeConverter/TreeConversion/HasCapturedLambdaParameterInInternalLambdaBody.cs +++ b/TreeConverter/TreeConversion/HasCapturedLambdaParameterInInternalLambdaBody.cs @@ -37,6 +37,14 @@ namespace PascalABCCompiler.TreeConverter public override void visit(function_lambda_definition fld) { InLambda = true; + // Исключить все параметры из idents + foreach (var fid in fld.ident_list.idents) + { + var ind = idents.FindIndex(x => string.Compare(x.name, fid.name, true) == 0); + if (ind != -1) + idents.RemoveAt(ind); + } + ProcessNode(fld.proc_body); }