public IEnumerable<MethodDeclarationSyntax> GetPossibleStaticMethods(TypeDeclarationSyntax type) { return type.DescendantNodes() .OfType<MethodDeclarationSyntax>() .Where(x => !x.Modifiers.Any(SyntaxKind.StaticKeyword)) .Where(CanBeMadeStatic) .AsArray(); }
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; }