Ejemplo n.º 1
0
        protected override void VisitForSyntax(ForSyntax pNode)
        {
            if (pNode.Iterator != null)
            {
                if (SmallTypeCache.TryGetEnumerable(_unit, out SmallType enumerable))
                {
                    if (!pNode.Iterator.Type.IsArray && !CanCast(pNode.Iterator.Type, enumerable))
                    {
                        CompilerErrors.IteratorError(pNode.Iterator.Type, pNode.Iterator.Span);
                    }
                }
            }
            else if (!CanCast(pNode.Condition.Type, SmallTypeCache.Boolean))
            {
                CompilerErrors.TypeCastError(pNode.Condition.Type, SmallTypeCache.Boolean, pNode.Condition.Span);
            }

            base.VisitForSyntax(pNode);
        }