From d5f268e4968b4724419759ca302b122e10cffb3c Mon Sep 17 00:00:00 2001 From: miks1965 Date: Thu, 1 Nov 2018 19:57:55 +0300 Subject: [PATCH] bug fix #1447 --- SyntaxTreeConverters/StandardSyntaxConverter.cs | 2 +- .../TreeConversion/SyntaxTreeVisitorNodes/Assign.cs | 7 ++++--- TreeConverter/TreeConversion/syntax_tree_visitor.cs | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SyntaxTreeConverters/StandardSyntaxConverter.cs b/SyntaxTreeConverters/StandardSyntaxConverter.cs index a5a31f779..e054f48f8 100644 --- a/SyntaxTreeConverters/StandardSyntaxConverter.cs +++ b/SyntaxTreeConverters/StandardSyntaxConverter.cs @@ -73,7 +73,7 @@ namespace PascalABCCompiler.SyntaxTreeConverters /*try { - root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz4.txt")); + //root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz4.txt")); } catch(Exception e) { diff --git a/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs b/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs index 6b089d447..24f0b6312 100644 --- a/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs +++ b/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs @@ -60,8 +60,6 @@ namespace PascalABCCompiler.TreeConverter } } - - /// /// Обрабатывает случай, когда левая часть присваивания short string. /// @@ -198,7 +196,10 @@ namespace PascalABCCompiler.TreeConverter { var cfr = to as class_field_reference; cfr.field.type = from.type; - cfr.type = from.type; + cfr.type = from.type; // Это неверно работает когда yieldится процедура #1439 + // SSM 1.11.18 попытка правки возвращения процедуры в yield + //if (from.type.semantic_node_type == semantic_node_type.delegated_method) + cfr.field.inital_value = context.GetInitalValueForVariable(cfr.field, cfr.field.inital_value); } else if (to is local_block_variable_reference) diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 679f829f1..37c7cf394 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -11346,6 +11346,7 @@ namespace PascalABCCompiler.TreeConverter is_direct_type_decl = false; if (_type_declaration.type_def is SyntaxTree.named_type_reference|| _type_declaration.type_def is SyntaxTree.ref_type || _type_declaration.type_def is SyntaxTree.string_num_definition || + _type_declaration.type_def is SyntaxTree.sequence_type || //SSM 01.11.2018 tn.type_special_kind == PascalABCCompiler.SemanticTree.type_special_kind.array_kind)// || /*tn.type_special_kind == PascalABCCompiler.SemanticTree.type_special_kind.set_type*/ {