Browse Source

Fixed completion bug.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
d85bb0ecbb
  1. 6
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 25
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

6
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// CSharpCompletionEngine.cs
//
// Author:
@ -320,7 +320,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -320,7 +320,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (controlSpace && isAsExpression != null && isAsExpression.Node is VariableDeclarationStatement && token != "new") {
var parent = isAsExpression.Node as VariableDeclarationStatement;
var proposeNameList = new CompletionDataWrapper(this);
if (parent.Variables.Count != 1)
return DefaultControlSpaceItems(isAsExpression, controlSpace);
foreach (var possibleName in GenerateNameProposals (parent.Type)) {
if (possibleName.Length > 0) {
proposeNameList.Result.Add(factory.CreateLiteralCompletionData(possibleName.ToString()));

25
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

@ -4859,5 +4859,30 @@ namespace Test @@ -4859,5 +4859,30 @@ namespace Test
Assert.IsNull (provider.Find ("Dispose"), "'Dispose' found.");
}
/// <summary>
/// Bug 4085 - code completion problem with generic dictionary
/// </summary>
[Test()]
public void TestBug4085 ()
{
// Name proposal feature breaks here
var provider = CreateCtrlSpaceProvider (
@"using System.Collections.Generic;
namespace Test
{
class TestClass
{
static void Main()
{
$IDictionary<string, TestClass> foo = new Dictionary<string, $
}
}
}
");
Assert.IsNotNull (provider.Find ("TestClass"), "'TestClass' not found.");
}
}
}

Loading…
Cancel
Save