diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 78cadb8dff..60aca19796 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -949,8 +949,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion wrapper.AddTypeParameter (p); } } + var scope = CSharpParsedFile.GetUsingScope (location).Resolve (Compilation); - for (var n = state.CurrentUsingScope; n != null; n = n.Parent) { + for (var n = scope; n != null; n = n.Parent) { foreach (var pair in n.UsingAliases) { wrapper.AddNamespace (pair.Key); } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs index 6bb78986e6..35cb856656 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs @@ -1990,6 +1990,36 @@ class C }); } + /// + /// Bug 3436 - [New Resolver] Type missing in return type completion + /// + [Test()] + public void Test3436 () + { + CombinedProviderTest ( +@" +namespace A +{ + public class SomeClass {} +} + +namespace Foo +{ + public partial class Bar {} +} + +namespace Foo +{ + using A; + public partial class Bar { + $S$ + } +} +", provider => { + Assert.IsNotNull (provider.Find ("SomeClass"), "'SomeClass' not found."); + }); + } + /// /// Bug 474199 - Code completion not working for a nested class