func (b *builder) arrayLen(fn *Function, elts []ast.Expr) int64 {
	var max int64 = -1
	var i int64 = -1
	for _, e := range elts {
		if kv, ok := e.(*ast.KeyValueExpr); ok {
			i = b.expr(fn, kv.Key).(*Const).Int64()
		} else {
			i++
		}
		if i > max {
			max = i
		}
	}
	return max + 1
}
func (b *builder) arrayLen(fn *Function, elts []ast.Expr) int64 {
	var max int64 = -1
	var i int64 = -1
	for _, e := range elts {
		if kv, ok := e.(*ast.KeyValueExpr); ok {
			i = b.expr(fn, kv.Key).(*Const).Int64()
		} else {
			i++
		}
		if i > max {
			max = i
		}
	}
	return max + 1
}
func ( b * builder ) arrayLen ( fn * Function , elts [ ] ast . Expr ) int64 { var max int64 = - 1 var i int64 = - 1 for _ , e := range elts { if kv , ok := e . ( * ast . KeyValueExpr ) ; ok { i = b . expr ( fn , kv . Key ) . ( * Const ) . Int64 ( ) } else { i ++ } if i > max { max = i } } return max + 1 }
// arrayLen returns the length of the array whose composite literal elements are elts.
arrayLen returns the length of the array whose composite literal elements are elts .