Example #1
0
        public static AccessorDeclarations GetAllAccessorDeclarations(INodeArray <IDeclaration> declarations, IAccessorDeclaration accessor)
        {
            IAccessorDeclaration firstAccessor  = null;
            IAccessorDeclaration secondAccessor = null;
            IAccessorDeclaration getAccessor    = null;
            IAccessorDeclaration setAccessor    = null;

            if (HasDynamicName(accessor))
            {
                firstAccessor = accessor;
                if (accessor.Kind == SyntaxKind.GetAccessor)
                {
                    getAccessor = accessor;
                }
                else if (accessor.Kind == SyntaxKind.SetAccessor)
                {
                    setAccessor = accessor;
                }
                else
                {
                    Contract.Assert(false, "Accessor has wrong kind");
                }
            }
            else
            {
                NodeArrayExtensions.ForEach(declarations, member =>
                {
                    if ((member.Kind == SyntaxKind.GetAccessor || member.Kind == SyntaxKind.SetAccessor) &&
                        (member.Flags & NodeFlags.Static) == (accessor.Flags & NodeFlags.Static))
                    {
                        var memberName   = GetPropertyNameForPropertyNameNode(member.Name);
                        var accessorName = GetPropertyNameForPropertyNameNode(accessor.Name);
                        if (memberName == accessorName)
                        {
                            if (firstAccessor == null)
                            {
                                firstAccessor = member.Cast <IAccessorDeclaration>();
                            }
                            else if (secondAccessor == null)
                            {
                                secondAccessor = member.Cast <IAccessorDeclaration>();
                            }

                            if (member.Kind == SyntaxKind.GetAccessor && getAccessor == null)
                            {
                                getAccessor = member.Cast <IAccessorDeclaration>();
                            }

                            if (member.Kind == SyntaxKind.SetAccessor && setAccessor == null)
                            {
                                setAccessor = member.Cast <IAccessorDeclaration>();
                            }
                        }
                    }
                });
            }

            return(new AccessorDeclarations(firstAccessor, secondAccessor, getAccessor, setAccessor));
        }
Example #2
0
        private static DeclarationFlags GetObsoleteModifierAsFlags(INode source)
        {
            if (NodeArrayExtensions.Any(source.Decorators, d => IsObsolete(d)))
            {
                return(DeclarationFlags.Obsolete);
            }

            return(DeclarationFlags.None);
        }
Example #3
0
        public static IConstructorDeclaration GetFirstConstructorWithBody(IClassLikeDeclaration node)
        {
            return(NodeArrayExtensions.ForEachUntil(node.Members, member =>
            {
                if (member.Kind == SyntaxKind.Constructor && NodeIsPresent(member.Cast <ConstructorDeclaration>().Body))
                {
                    return member.Cast <ConstructorDeclaration>();
                }

                return (IConstructorDeclaration)null;
            }));
        }
Example #4
0
 /// <summary>
 /// Returns the first
 /// </summary>
 public static T First <T>(this INodeArray <T> array)
 {
     return(NodeArrayExtensions.First(array));
 }
Example #5
0
 /// <summary>
 /// Returns true when <paramref name="array"/> is null or empty.
 /// </summary>
 public static bool IsNullOrEmpty <T>(this INodeArray <T> array)
 {
     return(NodeArrayExtensions.IsNullOrEmpty(array));
 }