/// <inheritdoc/>
        public override void VisitListType(IListType listType)
        {
            if (listType.ElementType == null)
            {
                // A list has been declared with no element type specified. For example:
                // ```
                // struct User {
                //   1: list<> Emails
                // }
                // ```
                this.AddError(
                    CompilerMessageId.ListMustHaveElementTypeSpecified,
                    listType.Node.LIST().Symbol,
                    listType.Node.GT_OPERATOR()?.Symbol ?? listType.Node.LIST().Symbol);
            }

            base.VisitListType(listType);
        }
Example #2
0
 /// <inheritdoc/>
 public virtual void VisitListType(IListType listType)
 {
 }
Example #3
0
        public static List <IListType> AddEveryOften(this IEnumerable <IListType> collectionList, int everyOften, int maxNumberToShow, IListType itemToAdd, int startAt = 0, bool addAsFirstItem = false)
        {
            var list = collectionList.ToList();

            if (list.IsNullOrEmpty())
            {
                return(new List <IListType>());
            }

            var itemsAdded         = 0;
            var numberOfItemsToAdd = Math.Floor((decimal)list.Count / everyOften);

            for (var i = 0; i < numberOfItemsToAdd; i++)
            {
                var multiplyValue = addAsFirstItem && startAt > 0 ? i : i + 1;
                var addAt         = addAsFirstItem && i == 0 ? startAt : (multiplyValue * everyOften) + startAt;
                if (addAt > list.Count)
                {
                    break;
                }

                list.Insert(addAt, itemToAdd);

                itemsAdded++;
                if (itemsAdded == maxNumberToShow)
                {
                    break;
                }
            }

            return(list);
        }