From 58fea5211ecd9e5fed108c785f07101c864bdaef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Mon, 23 Jul 2012 15:55:42 +0200 Subject: [PATCH] [Completion] Added more synthetic member checks/added forgotton accessible check for nested types. --- .../Completion/CSharpCompletionEngine.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 892643a2dd..07d30e84ac 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -1321,6 +1321,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion if (currentType != null) { for (var ct = currentType; ct != null; ct = ct.DeclaringTypeDefinition) { foreach (var nestedType in ct.NestedTypes) { + if (nestedType.IsSynthetic) + continue; string name = nestedType.Name; if (IsAttributeContext(node) && name.EndsWith("Attribute") && name.Length > "Attribute".Length) { name = name.Substring(0, name.Length - "Attribute".Length); @@ -2443,7 +2445,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion } if (resolveResult is TypeResolveResult || includeStaticMembers) { - foreach (var nested in type.GetNestedTypes ()) { + foreach (var nested in type.GetNestedTypes (t => !t.IsSynthetic)) { + if (!lookup.IsAccessible(nested.GetDefinition(), isProtectedAllowed)) + continue; IType addType = typePred != null ? typePred(nested) : nested; if (addType != null) result.AddType(addType, addType.Name);