diff --git a/CodeCompletion/DomSyntaxTreeVisitor.cs b/CodeCompletion/DomSyntaxTreeVisitor.cs index 183cfb433..489ea137a 100644 --- a/CodeCompletion/DomSyntaxTreeVisitor.cs +++ b/CodeCompletion/DomSyntaxTreeVisitor.cs @@ -5575,12 +5575,16 @@ namespace CodeCompletion public override void visit(diapason_expr_new _diapason_expr_new) { - _diapason_expr_new.left.visit(this); + /*_diapason_expr_new.left.visit(this); TypeScope ts = TypeTable.get_compiled_type(new SymInfo("IEnumerable`1", SymbolKind.Type, "System.Collections.Generic.IEnumerable`1"), typeof(IEnumerable<>)); TypeScope elem_ts = returned_scope as TypeScope; if (elem_ts != null) ts = ts.GetInstance(new List() { elem_ts }); - returned_scope = ts; + returned_scope = ts;*/ + method_call mc = new method_call(); + mc.parameters = new expression_list(new List { _diapason_expr_new.left, _diapason_expr_new.right }); + mc.dereferencing_value = new dot_node(new ident("PABCSystem"), new ident("InternalRange")); + mc.visit(this); } } } diff --git a/CodeCompletion/ExpressionVisitor.cs b/CodeCompletion/ExpressionVisitor.cs index 28f0e5b16..d5091a0ab 100644 --- a/CodeCompletion/ExpressionVisitor.cs +++ b/CodeCompletion/ExpressionVisitor.cs @@ -2000,14 +2000,19 @@ namespace CodeCompletion public override void visit(diapason_expr_new _diapason_expr_new) { - _diapason_expr_new.left.visit(this); + /*_diapason_expr_new.left.visit(this); TypeScope ts = TypeTable.get_compiled_type(new SymInfo("IEnumerable`1", SymbolKind.Type, "System.Collections.Generic.IEnumerable`1"), typeof(IEnumerable<>)); TypeScope elem_ts = null; if (returned_scope is ElementScope) elem_ts = (returned_scope as ElementScope).sc as TypeScope; if (elem_ts != null) ts = ts.GetInstance(new List() { elem_ts }); - returned_scope = new ElementScope(ts); + returned_scope = new ElementScope(ts);*/ + + method_call mc = new method_call(); + mc.parameters = new expression_list(new List { _diapason_expr_new.left, _diapason_expr_new.right}); + mc.dereferencing_value = new dot_node(new ident("PABCSystem"), new ident("InternalRange")); + mc.visit(this); } } } diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 4eb367f8f..5c9f5ee33 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -19536,6 +19536,7 @@ namespace PascalABCCompiler.TreeConverter { _function_lambda_definition.return_type = null; } + else _function_lambda_definition.usedkeyword = 1; // значит, это наверняка функция } } else if (_function_lambda_definition.return_type is lambda_inferred_type && stl != null && stl.list.Count > 1 && _function_lambda_definition.usedkeyword == 0)