// +build ignore,OMIT

package main

import (
	"fmt"
	"reflect"
)

func sendSlice(slice interface{}) (channel interface{}) {
	sliceValue := reflect.ValueOf(slice)
	chanType := reflect.ChanOf(reflect.BothDir, sliceValue.Type().Elem())
	chanValue := reflect.MakeChan(chanType, 0)
	go func() {
		for i := 0; i < sliceValue.Len(); i++ {
			chanValue.Send(sliceValue.Index(i))
		}
		chanValue.Close()
	}()
	return chanValue.Interface()
}

func main() {
	ch := sendSlice([]int{1, 2, 3, 4, 5}).(chan int)
	for v := range ch {
		fmt.Println(v)
	}
}
