diff --git a/CodeCompletion/SymTable.cs b/CodeCompletion/SymTable.cs index b8505773b..bc0b0e271 100644 --- a/CodeCompletion/SymTable.cs +++ b/CodeCompletion/SymTable.cs @@ -6762,10 +6762,16 @@ namespace CodeCompletion //private CompiledScope ret_type; - public CompiledMethodScope(SymInfo si, MethodInfo mi, CompiledScope declaringType) + public CompiledMethodScope(SymInfo si, MethodInfo mi, TypeScope declaringType) { this.si = si; this.mi = mi; + if (declaringType == TypeTable.string_type && mi.GetParameters().Length >= 1 && mi.GetParameters()[0].ParameterType.Name == "IEnumerable`1") + { + List type_list = new List(); + type_list.Add(TypeTable.char_type); + declaringType = TypeTable.get_compiled_type(mi.GetParameters()[0].ParameterType.GetGenericTypeDefinition()).GetInstance(type_list); + } string[] args = declaringType.TemplateArguments; this.declaringType = declaringType; if (args != null) diff --git a/Libraries/ICSharpCode.TextEditor.dll b/Libraries/ICSharpCode.TextEditor.dll index 00cadd529..70cdf46b4 100644 Binary files a/Libraries/ICSharpCode.TextEditor.dll and b/Libraries/ICSharpCode.TextEditor.dll differ diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index 4327802fc..6c24d6392 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -1836,6 +1836,7 @@ namespace PascalABCCompiler.Parsers } } } + else sb.Append(tt[i].Name); if (i < tt.Length - 1) sb.Append(','); diff --git a/TestSuite/intellisense_tests/generics7.pas b/TestSuite/intellisense_tests/generics7.pas new file mode 100644 index 000000000..bd560323b --- /dev/null +++ b/TestSuite/intellisense_tests/generics7.pas @@ -0,0 +1,3 @@ +begin + ''.Select{@(расширение sequence of T) function Select(selector: char->TResult): sequence of TResult;@}(x->Ord(x)); +end. \ No newline at end of file