From 847902e531510931b3f84fa9e364cd618c8df4ad Mon Sep 17 00:00:00 2001 From: miks1965 Date: Sat, 30 Apr 2016 09:53:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D0=B4=D0=BD=D1=83=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D1=83=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=D0=B0=20=D0=BA=D0=BE=D1=80=D0=BE=D1=82=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 ++-- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- .../TreeConversion/syntax_tree_visitor.cs | 7 +++++-- bin/Lib/PABCRtl.dll | Bin 504320 -> 504320 bytes 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index a341e09a9..2a0f78eee 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "1"; public const string Build = "0"; - public const string Revision = "1230"; + public const string Revision = "1231"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index a3b57d963..77b15647d 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=1 -%REVISION%=1230 %COREVERSION%=0 +%REVISION%=1231 +%MINOR%=1 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 69f79d594..c40967416 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.1.0.1230' +!define VERSION '3.1.0.1231' diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index e33a8c8bd..201bb6f12 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -11442,8 +11442,11 @@ namespace PascalABCCompiler.TreeConverter AddError(context.top_function.loc, "IMPOSSIBLE!SHORT_FUNC_WITHOUT_BODY"); } - statement_node aa = cd.statements[0]; - var bfc = cd.statements[0] as basic_function_call; + // Проблема в том, что если в теле короткого определения функции - лямбда + // и происходит захват переменной, то в тело выносится вызов конструктора сгенерированного класса + // Поэтому result := ... - это не первый оператор, а последний!!! + statement_node aa = cd.statements[cd.statements.Count-1]; + var bfc = aa as basic_function_call; if (bfc != null) { var ttt1 = bfc.type; diff --git a/bin/Lib/PABCRtl.dll b/bin/Lib/PABCRtl.dll index d005b7a376d99d0fc83d624c2f53921812d37b50..51ed41052f175e279a63d1857707173cb4fb186a 100644 GIT binary patch delta 437 zcmZp8BG>RlZbAohd9u>PZeOMYu8p_0-eOc-%;-7&&tgVt7SD^B%+vobW|UwBvcw~& zEnyUA^xPh>gmJcTy}NkCr64T^1_ogRW(F=G&B(wY$iT$p&U^_X0TSm#5*Lrer5+-I zu3qdPBiwvsb0Ff|vvx2ZSR(12r}!TTfYvblV+6`rN&;Epf^6Q~onx7Dw=ueJ-zdy1 z)l$!4c&KaD!Gh%2_zG{26BQZ9oiuAWAHUqTNIzR3D(mpFZ09GYO7l4d14Cl7b=R=- zG;Lh>;QEWM1)P%;JWm|xH9FI&D>$ntraFISD@%S=eSWZz>9sfV(?wqWT=C_fU0G+a zw|aby4$D_vwo=`D$u}*Y+_$Y`RCseRlZbApMijTs?ZeOMys~T@@y~U`wn9*bUpT&&QEFKp#nWz6>%qYPMWQj*k zTf!*L=&?Ou3FB!;3=F~s%nV#WnvsD)kb#NGjrkHp0wm6fBrYC_OFcva zUA@>pM!5ON=0L=^XYF7-utd@;Pw_tx0Igy8#|V_MlmxQG1=+l|JI6BRZew)YzEPN2 zs-@mXzBKu+eEgDFs~AfKzIN8mJYI%_YiC~FbS~zXqXm=1R)Yhs!rcliPkBtlGyUJ! z?P&R;Q~CSP+3gP5CfW~IuATFY!Avc?s4?^@&-=Gsd>q`p*P6RE-!D~)-^v&guDdm` z@z2+1xB6NwR1PeeF>T7>1KaPne>Zp^VQ})l+vnxa8Ex9VXD|aX3lOtz_nyI~nI>Rd zekxm3A=|g}nu=o3f$x&rTmG@#*Z_)*>GA8?B?S%(T5OYzxaPalea^bfWums*JJz#T GFaZD;zmk#w