From 1a14230dace665aadda2e4549ab33d697818eff0 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Mon, 11 Jan 2021 09:32:49 +0300 Subject: [PATCH] fix #1255 --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 2 +- Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- .../YieldVisitors/ProcessYieldsCapturedVars.cs | 5 ++++- TestSuite/CompilationSamples/PABCSystem.pas | 15 +++++++++++++++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 46048dceb..3bebe926e 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 = "7"; public const string Build = "1"; - public const string Revision = "2796"; + public const string Revision = "2798"; 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 eb612e9c8..4786eb00b 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %COREVERSION%=1 -%REVISION%=2796 +%REVISION%=2798 %MINOR%=7 %MAJOR%=3 diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index a3dcbc816..867eefba1 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.7.1.2796 +3.7.1.2798 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index aa6d3386c..ad91d91eb 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.7.1.2796' +!define VERSION '3.7.1.2798' diff --git a/SyntaxVisitors/YieldVisitors/ProcessYieldsCapturedVars.cs b/SyntaxVisitors/YieldVisitors/ProcessYieldsCapturedVars.cs index 2f463d879..91626b843 100644 --- a/SyntaxVisitors/YieldVisitors/ProcessYieldsCapturedVars.cs +++ b/SyntaxVisitors/YieldVisitors/ProcessYieldsCapturedVars.cs @@ -168,12 +168,15 @@ namespace SyntaxVisitors } var GetEnumeratorBody = new statement_list(); + var ResetBody = new statement_list(); + var nsex = new raise_stmt(new new_expr("System.NotSupportedException"), null); + ResetBody.Add(nsex); // Системные поля и методы для реализации интерфейса IEnumerable cm.Add(new var_def_statement(YieldConsts.State, "integer"), new var_def_statement(YieldConsts.Current, stels), procedure_definition.EmptyDefaultConstructor, - new procedure_definition("Reset"), + new procedure_definition("Reset", ResetBody), new procedure_definition("MoveNext", "boolean", pd.proc_body), new procedure_definition("System.Collections.IEnumerator.get_Current", "object", new assign("Result", YieldConsts.Current)), //new procedure_definition("System.Collections.IEnumerable.GetEnumerator", "System.Collections.IEnumerator", new assign("Result", "Self")) diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas index 1c9f37d7c..a210ebf80 100644 --- a/TestSuite/CompilationSamples/PABCSystem.pas +++ b/TestSuite/CompilationSamples/PABCSystem.pas @@ -12415,6 +12415,21 @@ function TryToInteger(Self: string; var value: integer): boolean; extensionmetho ///При невозможности преобразования возвращается False function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value); + +/// Возвращает True если строку можно преобразовать в вещественное +function IsReal(Self: string): boolean; extensionmethod; +begin + var r: real; + Result := TryStrToReal(Self, r); +end; + +/// Возвращает True если строку можно преобразовать в целое +function IsInteger(Self: string): boolean; extensionmethod; +begin + var i: integer; + Result := TryStrToInt(Self, i); +end; + /// Преобразует строку в целое ///При невозможности преобразования возвращается defaultvalue function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;