1 // Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.
2 // Source: ../../cmd/compile/internal/types2/chan.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 Chan represents a channel type.
11 type Chan struct {
12 dir ChanDir
13 elem Type
14 }
15 16 // A ChanDir value indicates a channel direction.
17 type ChanDir int
18 19 // The direction of a channel is indicated by one of these constants.
20 const (
21 SendRecv ChanDir = iota
22 SendOnly
23 RecvOnly
24 )
25 26 // NewChan returns a new channel type for the given direction and element type.
27 func NewChan(dir ChanDir, elem Type) *Chan {
28 return &Chan{dir: dir, elem: elem}
29 }
30 31 // Dir returns the direction of channel c.
32 func (c *Chan) Dir() ChanDir { return c.dir }
33 34 // Elem returns the element type of channel c.
35 func (c *Chan) Elem() Type { return c.elem }
36 37 func (c *Chan) Underlying() Type { return c }
38 func (c *Chan) String() string { return TypeString(c, nil) }
39