func hasEmpty()

in lib/collections.go [797:824]


func hasEmpty(val iterator) bool {
	it := val.Iterator()
	switch val := val.(type) {
	case traits.Lister:
		for it.HasNext() == types.True {
			elem := it.Next()
			iter, ok := elem.(iterator)
			if !ok {
				continue
			}
			if iter.Size() == types.IntZero || hasEmpty(iter) {
				return true
			}
		}
	case traits.Mapper:
		for it.HasNext() == types.True {
			elem := val.Get(it.Next())
			iter, ok := elem.(iterator)
			if !ok {
				continue
			}
			if iter.Size() == types.IntZero || hasEmpty(iter) {
				return true
			}
		}
	}
	return false
}