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
8package 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.
13type Tuple struct {
14	vars []*Var
15}
16
17// NewTuple returns a new tuple for the given variables.
18func 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.
26func (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.
34func (t *Tuple) At(i int) *Var { return t.vars[i] }
35
36func (t *Tuple) Underlying() Type { return t }
37func (t *Tuple) String() string   { return TypeString(t, nil) }
38