From 1ac993bc58cac04884ef5bee29c71ee159bbfca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Thu, 4 Oct 2018 15:27:05 +0200 Subject: [PATCH] fix #1109 --- CodeCompletion/Testing.cs | 17 +++++++++++++++++ .../ParserTools/DefaultLanguageInformation.cs | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CodeCompletion/Testing.cs b/CodeCompletion/Testing.cs index 63c2fa62c..89514295f 100644 --- a/CodeCompletion/Testing.cs +++ b/CodeCompletion/Testing.cs @@ -394,7 +394,9 @@ namespace CodeCompletion off = test_str.Length - 3; s = parser.LanguageInformation.FindExpression(off, test_str, line, col, out keyw); assert(s.Trim('\n', ' ', '\t') == "s0"); + + int num_param = 0; //testirovanie nazhatija skobki test_str = "writeln"; @@ -778,6 +780,21 @@ namespace CodeCompletion s = parser.LanguageInformation.FindExpressionFromAnyPosition(off,test_str,line,col,out keyw,out str); assert(s.Trim('\n',' ','\t')==test_str); + test_str = "new t1(2)"; + off = 5; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "new t1(2)"); + + test_str = "new t1>(2)"; + off = 5; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "new t1>(2)"); + + test_str = "t1&.x"; + off = test_str.Length; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "t1&.x"); + //---- Type[] types = typeof(int).Assembly.GetExportedTypes(); int i = 0; diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index e30c26c3c..fb409c409 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -3068,7 +3068,7 @@ namespace PascalABCCompiler.Parsers } if (generic) { - break; + //break; } } else if (c == '[' && !in_comment)