diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index a3be267b5..71cbff574 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 = "6"; public const string Build = "2"; - public const string Revision = "2385"; + public const string Revision = "2386"; 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 8e9730f5d..234d6f5a9 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=6 -%REVISION%=2385 %COREVERSION%=2 +%REVISION%=2386 +%MINOR%=6 %MAJOR%=3 diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index 172597958..5a4d9ca5f 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.6.2.2385 +3.6.2.2386 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index ad0463460..586a680a7 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.6.2.2385' +!define VERSION '3.6.2.2386' diff --git a/SyntaxVisitors/YieldVisitors/CollectClassFieldsVisitor.cs b/SyntaxVisitors/YieldVisitors/CollectClassFieldsVisitor.cs index b1eb9e8d9..4422e4036 100644 --- a/SyntaxVisitors/YieldVisitors/CollectClassFieldsVisitor.cs +++ b/SyntaxVisitors/YieldVisitors/CollectClassFieldsVisitor.cs @@ -57,18 +57,22 @@ namespace SyntaxVisitors { // Declaration: fields + procedure defs + headers + etc // Need vars - if (decl is var_def_statement) + if (decl is var_def_statement vds) { - var vars = (decl as var_def_statement).vars; + CollectedFields.UnionWith(vds.vars.idents); // Fields - foreach (var field in vars.idents) + /*foreach (var field in vds.vars.idents) { CollectedFields.Add(field); - } + }*/ + } + else if (decl is simple_const_definition scd) + { + CollectedFields.Add(scd.const_name); } } } - } + } } } diff --git a/TestSuite/yield_class_const.pas b/TestSuite/yield_class_const.pas new file mode 100644 index 000000000..fd3dd7e3b --- /dev/null +++ b/TestSuite/yield_class_const.pas @@ -0,0 +1,15 @@ +type + t1 = class + v1: integer; + const c1 = 5; + + function f1: sequence of byte; + begin + yield c1; + end; + + end; + +begin + Assert(True); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index f979814a1..5ea7fff54 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -20215,6 +20215,7 @@ namespace PascalABCCompiler.TreeConverter isStaticIdent = CheckIsStaticName(found_unit.sym_info); if (found_unit.sym_info is class_field + || found_unit.sym_info is class_constant_definition // SSM #2152 || found_unit.sym_info is common_method_node || found_unit.sym_info is common_property_node || found_unit.sym_info is compiled_function_node