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); }