예제 #1
0
		public IEnumerable<MethodDeclarationSyntax> GetPossibleStaticMethods(TypeDeclarationSyntax type)
		{
			return type.DescendantNodes()
				.OfType<MethodDeclarationSyntax>()
				.Where(x => !x.Modifiers.Any(SyntaxKind.StaticKeyword))
				.Where(CanBeMadeStatic)
				.AsArray();
		}
예제 #2
0
 public static IEnumerable<MethodDeclarationSyntax> GetMethodDeclarations(TypeDeclarationSyntax interfaceNode)
 {
     return interfaceNode.DescendantNodes().OfType<MethodDeclarationSyntax>();
 }
 private bool HasMethods(TypeDeclarationSyntax declaration)
 {
     var methods = declaration.DescendantNodes().OfType<MethodDeclarationSyntax>();
     return methods.Any();
 }
 private bool HasPublicFields(TypeDeclarationSyntax declaration)
 {
     var fields = declaration.DescendantNodes().OfType<FieldDeclarationSyntax>();
     return fields.Any(field => field.DescendantTokens().Any(t => t.RawKind == PublicToken));
 }
 private bool HasPublicProperties(TypeDeclarationSyntax declaration)
 {
     var properties = declaration.DescendantNodes().OfType<PropertyDeclarationSyntax>();
     return (properties.Where(property => property.DescendantTokens().Any(t => t.RawKind == PublicToken))
         .Any(property => property.AccessorList.Accessors.Count == 2));
 }
 private bool HasNotOnlyConstOrReadonlyFields(TypeDeclarationSyntax declaration)
 {
     var fields = declaration.DescendantNodes().OfType<FieldDeclarationSyntax>();
     foreach (var field in fields)
     {
         if (field.ChildTokens().Any(t => t.RawKind == PublicToken))
         {
             if (!field.ChildTokens().Any(t => t.RawKind == ConstToken || t.RawKind == ReadOnlyToken))
             {
                 return true;
             }
         }
     }
     return false;
 }