diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2011-10-26 14:09:42 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2011-10-26 14:09:42 +0400 |
commit | 6cf6e34954b32247d8970a0712e1a12cebe4b52d (patch) | |
tree | 4d7d8db64610c9305eb679d14efa6be8a3b02c6d /main/contrib | |
parent | 80015c77de170acdeae5a740c75d0ce8608c91e5 (diff) |
Fixed completion resolve issue.
Diffstat (limited to 'main/contrib')
-rw-r--r-- | main/contrib/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/main/contrib/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/main/contrib/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 0244fd0e02..7e4e792383 100644 --- a/main/contrib/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/main/contrib/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -1217,7 +1217,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion { if (type == null || type.DeclaringType != null) return type; - var result = ctx.GetTypeDefinition (type.Namespace, type.Name, type.TypeParameterCount, StringComparer.Ordinal); + var result = ctx.GetTypeDefinition (type.Namespace, type.Name, type.TypeParameterCount, StringComparer.Ordinal) ?? type; + if (result.GetParts ().Count == 1) + return type; // Console.WriteLine ("result:"+ result); return result; } @@ -1342,9 +1344,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion // Console.WriteLine ("type:" + type +"/"+type.GetType ()); // Console.WriteLine ("IS PROT ALLOWED:" + isProtectedAllowed); // Console.WriteLine (resolveResult); -// Console.WriteLine (currentMember != null ? currentMember.IsStatic : "currentMember == null"); +// Console.WriteLine (currentMember != null ? currentMember.IsStatic.ToString () : "currentMember == null"); if (resolvedNode.Annotation<ObjectCreateExpression> () == null) { //tags the created expression as part of an object create expression. - foreach (var member in type.GetMembers (ctx)) { + foreach (var member in type.Resolve (ctx).GetMembers (ctx)) { if (!lookup.IsAccessible (member, isProtectedAllowed)) { // Console.WriteLine ("skip access: " + member.FullName); continue; @@ -1360,7 +1362,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion // Console.WriteLine ("skip non static member: " + member.FullName); continue; } - // Console.WriteLine ("add : "+ member.FullName + " --- " + member.IsStatic); +// Console.WriteLine ("add : "+ member.FullName + " --- " + member.IsStatic + "---- returns:" + member.ReturnType.Resolve (ctx).FullName); result.AddMember (member); } } |