From ff2a11b00a54506f146f1aa7100e907ceede235d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Tue, 29 Nov 2011 14:44:51 +0100 Subject: [PATCH] Worked on unit tests. --- .../Completion/CSharpCompletionEngine.cs | 14 +++++--------- .../CodeCompletion/CodeCompletionBugTests.cs | 10 ++++++---- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index c5c869bc60..76f08913a2 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -708,7 +708,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion void AddTypesAndNamespaces (CompletionDataWrapper wrapper, CSharpResolver state, AstNode node, Predicate typePred = null, Predicate memberPred = null) { - var currentMember = this.currentMember; + var currentMember = ctx.CurrentMember; if (currentType != null) { for (var ct = currentType; ct != null; ct = ct.DeclaringTypeDefinition) { foreach (var nestedType in ct.NestedTypes) { @@ -721,7 +721,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion } } if (currentMember != null) { - foreach (var member in currentType.Resolve (ctx).GetMembers ()) { + foreach (var member in ctx.CurrentTypeDefinition.GetMembers ()) { if (memberPred == null || memberPred (member)) wrapper.AddMember (member); } @@ -730,18 +730,15 @@ namespace ICSharpCode.NRefactory.CSharp.Completion wrapper.AddTypeParameter (p); } } - Console.WriteLine ("-----"); + for (var n = state.CurrentUsingScope; n != null; n = n.Parent) { - Console.WriteLine ("n:" + n.Namespace.FullName); foreach (var pair in n.UsingAliases) { wrapper.AddNamespace (pair.Key); } foreach (var u in n.Usings) { - Console.WriteLine ("u:" + u.FullName + "/" + u.Types.Count ()); foreach (var type in u.Types) { if (typePred == null || typePred (type)) { string name = type.Name; - Console.WriteLine ("2" + name); if (node is Attribute && name.EndsWith ("Attribute") && name.Length > "Attribute".Length) name = name.Substring (0, name.Length - "Attribute".Length); wrapper.AddType (type, name); @@ -750,10 +747,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion } foreach (var type in n.Namespace.Types) { - Console.WriteLine (type.Name); - if (typePred == null || typePred (type)) { + if (typePred == null || typePred (type)) wrapper.AddType (type, type.Name); - } } foreach (var curNs in n.Namespace.ChildNamespaces) { @@ -1558,6 +1553,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion // Console.WriteLine ("IS PROT ALLOWED:" + isProtectedAllowed); // Console.WriteLine (resolveResult); // Console.WriteLine (currentMember != null ? currentMember.IsStatic : "currentMember == null"); + if (resolvedNode.Annotation () == null) { //tags the created expression as part of an object create expression. foreach (var member in type.GetMembers ()) { if (!lookup.IsAccessible (member, isProtectedAllowed)) { diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs index 5cef8555b3..3110dc0f00 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs @@ -228,10 +228,11 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion rctx = rctx.WithUsingScope (parsedFile.GetUsingScope (loc).Resolve (cmp)); var curDef = parsedFile.GetInnermostTypeDefinition (loc); if (curDef != null) { - rctx = rctx.WithCurrentTypeDefinition (curDef.Resolve (rctx).GetDefinition ()); - var curMember = parsedFile.GetMember (loc); + var resolvedDef = curDef.Resolve (rctx).GetDefinition (); + rctx = rctx.WithCurrentTypeDefinition (resolvedDef); + var curMember = resolvedDef.Members.FirstOrDefault (m => m.Region.Begin <= loc && loc < m.BodyRegion.End); if (curMember != null) - rctx = rctx.WithCurrentMember (curMember.CreateResolved (rctx)); + rctx = rctx.WithCurrentMember (curMember); } engine.ctx = rctx; @@ -614,10 +615,11 @@ class Test } }"); Assert.IsNotNull (provider, "provider not found."); - Assert.AreEqual (6, provider.Count); CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object Assert.IsNotNull (provider.Find ("A"), "field 'A' not found."); Assert.IsNotNull (provider.Find ("B"), "field 'B' not found."); + Assert.IsNull (provider.Find ("C"), "field 'C' found, but shouldn't."); + Assert.IsNull (provider.Find ("D"), "field 'D' found, but shouldn't."); } ///