Browse Source

Merge remote-tracking branch 'upstream/master' into mansheng

newNRvisualizers
Mansheng Yang 13 years ago
parent
commit
b0e12f08e9
  1. 18
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 12
      ICSharpCode.NRefactory/TypeSystem/ExtensionMethods.cs

18
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -262,7 +262,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -262,7 +262,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return contextList.Result;
}
foreach (var m in initializerResult.Item1.Type.GetMembers (m => m.IsPublic && (m.EntityType == EntityType.Property || m.EntityType == EntityType.Field))) {
foreach (var m in initializerResult.Item1.Type.GetMembers (m => !m.IsSynthetic && m.IsPublic && (m.EntityType == EntityType.Property || m.EntityType == EntityType.Field))) {
contextList.AddMember(m);
}
@ -1321,6 +1321,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -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);
@ -1349,6 +1351,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1349,6 +1351,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (member is IMethod && ((IMethod)member).FullName == "System.Object.Finalize") {
continue;
}
if (member.IsSynthetic)
continue;
if (member.EntityType == EntityType.Operator) {
continue;
}
@ -1365,7 +1369,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1365,7 +1369,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
}
var declaring = def.DeclaringTypeDefinition;
while (declaring != null) {
foreach (var member in declaring.GetMembers (m => m.IsStatic)) {
foreach (var member in declaring.GetMembers (m => m.IsStatic && !m.IsSynthetic)) {
if (memberPred == null || memberPred(member)) {
wrapper.AddMember(member);
}
@ -2147,6 +2151,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2147,6 +2151,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
var nr = (NamespaceResolveResult)resolveResult;
if (!(resolvedNode.Parent is UsingDeclaration || resolvedNode.Parent != null && resolvedNode.Parent.Parent is UsingDeclaration)) {
foreach (var cl in nr.Namespace.Types) {
if (cl.IsSynthetic)
continue;
string name = cl.Name;
if (hintType != null && hintType.Kind != TypeKind.Array && cl.Kind == TypeKind.Interface) {
continue;
@ -2285,6 +2291,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2285,6 +2291,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
var namespaceContents = new CompletionDataWrapper(this);
foreach (var cl in nr.Namespace.Types) {
if (cl.IsSynthetic)
continue;
IType addType = typePred != null ? typePred(cl) : cl;
if (addType != null)
namespaceContents.AddType(addType, addType.Name);
@ -2385,6 +2393,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2385,6 +2393,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
var filteredList = new List<IMember>();
foreach (var member in type.GetMembers ()) {
if (member.IsSynthetic)
continue;
if (member.EntityType == EntityType.Indexer || member.EntityType == EntityType.Operator || member.EntityType == EntityType.Constructor || member.EntityType == EntityType.Destructor) {
continue;
}
@ -2435,7 +2445,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2435,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);

12
ICSharpCode.NRefactory/TypeSystem/ExtensionMethods.cs

@ -92,7 +92,7 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -92,7 +92,7 @@ namespace ICSharpCode.NRefactory.TypeSystem
}
#endregion
#region IsOpen / IsUnbound
#region IsOpen / IsUnbound / IsKnownType
sealed class TypeClassificationVisitor : TypeVisitor
{
internal bool isOpen;
@ -140,6 +140,16 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -140,6 +140,16 @@ namespace ICSharpCode.NRefactory.TypeSystem
throw new ArgumentNullException("type");
return type is ITypeDefinition && type.TypeParameterCount > 0;
}
/// <summary>
/// Gets whether the type is the specified known type.
/// For generic known types, this returns true any parameterization of the type (and also for the definition itself).
/// </summary>
public static bool IsKnownType(this IType type, KnownTypeCode knownType)
{
var def = type.GetDefinition();
return def != null && def.KnownTypeCode == knownType;
}
#endregion
#region Import

Loading…
Cancel
Save