Browse Source

Fixed array initializer completion case.

newNRvisualizers
mike 14 years ago
parent
commit
0017621fc2
  1. 4
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 19
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ObjectInitializerTests.cs

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

@ -1764,13 +1764,13 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1764,13 +1764,13 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
baseUnit = ParseStub ("a()");
// Hack for handle object initializer continuation expressions
if (baseUnit.GetNodeAt (location) is AttributedNode) {
if (baseUnit.GetNodeAt (location) is AttributedNode || baseUnit.GetNodeAt<Expression> (location) == null) {
baseUnit = ParseStub ("a()};");
}
var memberLocation = currentMember != null ? currentMember.Region.Begin : currentType.Region.Begin;
var mref = baseUnit.GetNodeAt<MemberReferenceExpression> (location);
Print (baseUnit);
if (mref == null) {
var invoke = baseUnit.GetNodeAt<InvocationExpression> (location);
if (invoke != null)

19
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ObjectInitializerTests.cs

@ -31,6 +31,25 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -31,6 +31,25 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{
public class ObjectInitializerTests : TestBase
{
[Test()]
public void TestArrayInitializerSimple ()
{
CodeCompletionBugTests.CombinedProviderTest (
@"using System;
class MyTest
{
public void Test ()
{
$new [] { Tuple.$
}
}
", provider => {
Assert.IsNotNull (provider.Find ("Create"), "method 'Create' not found.");
});
}
/// <summary>
/// Bug 487236 - Object initializer completion uses wrong type
/// </summary>

Loading…
Cancel
Save