From b5892cb1dbc70bedc852f1bae3c954cac2803330 Mon Sep 17 00:00:00 2001 From: miks1965 Date: Sat, 6 Jan 2018 14:02:18 +0300 Subject: [PATCH] bug fix #635 Release 3.3.0.1611 --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 ++-- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- .../YieldVisitors/CollectClassMethodsVisitor.cs | 4 ++-- TestSuite/yieldwithconstructor.pas | 17 +++++++++++++++++ 5 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 TestSuite/yieldwithconstructor.pas diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 7275e24c0..03a26a960 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 = "3"; public const string Build = "0"; - public const string Revision = "1610"; + public const string Revision = "1611"; 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 5c185db46..b11881ed1 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=3 -%REVISION%=1610 %COREVERSION%=0 +%REVISION%=1611 +%MINOR%=3 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 9170016cd..9e7bbb89b 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.3.0.1610' +!define VERSION '3.3.0.1611' diff --git a/SyntaxVisitors/YieldVisitors/CollectClassMethodsVisitor.cs b/SyntaxVisitors/YieldVisitors/CollectClassMethodsVisitor.cs index d1ae28438..11e453cda 100644 --- a/SyntaxVisitors/YieldVisitors/CollectClassMethodsVisitor.cs +++ b/SyntaxVisitors/YieldVisitors/CollectClassMethodsVisitor.cs @@ -43,9 +43,9 @@ namespace SyntaxVisitors var methods = cd.body.class_def_blocks.SelectMany(cm => cm.members.Select(decl1 => { if (decl1 is procedure_header) - return (decl1 as procedure_header).name.meth_name; + return (decl1 as procedure_header).name?.meth_name; else if (decl1 is procedure_definition) - return (decl1 as procedure_definition).proc_header.name.meth_name; + return (decl1 as procedure_definition).proc_header.name?.meth_name; return null; }).Where(name => (object)name != null)); diff --git a/TestSuite/yieldwithconstructor.pas b/TestSuite/yieldwithconstructor.pas new file mode 100644 index 000000000..c4fee370b --- /dev/null +++ b/TestSuite/yieldwithconstructor.pas @@ -0,0 +1,17 @@ +type + t1 = class + + public constructor(a: object); + begin + end; + + public function f1: sequence of byte; + begin + yield 0; + end; + + end; + +begin + Assert(t1.Create(nil).f1.First = 0); +end. \ No newline at end of file