diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
index 9147c7cc71..0f268ccc0a 100644
--- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
+++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
@@ -33,6 +33,7 @@ using ICSharpCode.NRefactory.CSharp.Resolver;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Semantics;
+using ICSharpCode.NRefactory.TypeSystem.Implementation;
namespace ICSharpCode.NRefactory.CSharp.Completion
{
@@ -444,11 +445,16 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
var csResolver = new CSharpResolver (ctx, System.Threading.CancellationToken.None);
var navigator = new NodeListResolveVisitorNavigator (new[] { resolveNode });
+ if (ProjectContent is SimpleProjectContent)
+ ((SimpleProjectContent)ProjectContent).UpdateProjectContent (CSharpParsedFile, file);
var visitor = new ResolveVisitor (csResolver, file, navigator);
+
visitor.Scan (unit);
// Print (unit);
var state = visitor.GetResolverStateBefore (resolveNode);
var result = visitor.GetResolveResult (resolveNode);
+ if (ProjectContent is SimpleProjectContent)
+ ((SimpleProjectContent)ProjectContent).UpdateProjectContent (file, CSharpParsedFile);
return Tuple.Create (result, state);
}
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs
index b053aeb4fd..0745a89ec6 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs
@@ -925,6 +925,40 @@ namespace MyNamespace
});
}
+ ///
+ /// Bug 1967 - [new resolver] Intellisense doesn't work
+ ///
+ [Test()]
+ public void TestBug1967 ()
+ {
+ CombinedProviderTest (
+@"
+namespace MyNamespace
+{
+ partial class FormMain
+ {
+ FormMain field1;
+ string field2;
+ }
+}
+
+namespace MyNamespace
+{
+ public partial class FormMain
+ {
+ private void Bar()
+ {
+ $field1.$
+ }
+ }
+}
+", provider => {
+ Assert.IsNotNull (provider.Find ("field1"), "field 'field1' not found.");
+ Assert.IsNotNull (provider.Find ("field2"), "field 'field2' not found.");
+ });
+ }
+
+
///
/// Bug 432434 - Code completion doesn't work with subclasses
///