Browse Source

Fixed "partial" bug.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
057c0beee2
  1. 6
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
  2. 34
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

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

@ -33,6 +33,7 @@ using ICSharpCode.NRefactory.CSharp.Resolver; @@ -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 @@ -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);
}

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

@ -925,6 +925,40 @@ namespace MyNamespace @@ -925,6 +925,40 @@ namespace MyNamespace
});
}
/// <summary>
/// Bug 1967 - [new resolver] Intellisense doesn't work
/// </summary>
[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.");
});
}
/// <summary>
/// Bug 432434 - Code completion doesn't work with subclasses
/// </summary>

Loading…
Cancel
Save