1 // Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.
2 // Source: ../../cmd/compile/internal/types2/tuple.go
3 4 // Copyright 2011 The Go Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style
6 // license that can be found in the LICENSE file.
7 8 package types
9 10 // A Tuple represents an ordered list of variables; a nil *Tuple is a valid (empty) tuple.
11 // Tuples are used as components of signatures and to represent the type of multiple
12 // assignments; they are not first class types of Go.
13 type Tuple struct {
14 vars []*Var
15 }
16 17 // NewTuple returns a new tuple for the given variables.
18 func NewTuple(x ...*Var) *Tuple {
19 if len(x) > 0 {
20 return &Tuple{vars: x}
21 }
22 return nil
23 }
24 25 // Len returns the number variables of tuple t.
26 func (t *Tuple) Len() int {
27 if t != nil {
28 return len(t.vars)
29 }
30 return 0
31 }
32 33 // At returns the i'th variable of tuple t.
34 func (t *Tuple) At(i int) *Var { return t.vars[i] }
35 36 func (t *Tuple) Underlying() Type { return t }
37 func (t *Tuple) String() string { return TypeString(t, nil) }
38