From fa93d77b301bc5c71812af3e280d299d41f36457 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Sat, 15 Feb 2020 00:57:23 +0300 Subject: [PATCH] =?UTF-8?q?Intellisense=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=20=D0=B2=20=D1=81=D0=BE=D0=BE=D1=82=D0=B2?= =?UTF-8?q?=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=202..5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CodeCompletion/DomSyntaxTreeVisitor.cs | 8 ++++++-- CodeCompletion/ExpressionVisitor.cs | 9 +++++++-- TreeConverter/TreeConversion/syntax_tree_visitor.cs | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) 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)