mirror of
https://github.com/golang/go
synced 2024-11-19 05:04:43 -07:00
cmd/compile: add typChan
Passes toolstash -cmp. Change-Id: I2c71882f957c44047c7ac83c78236dcc3dfa15a1 Reviewed-on: https://go-review.googlesource.com/21304 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
331f962508
commit
09c672d50a
@ -3050,9 +3050,7 @@ func (p *parser) hidden_type_misc() *Type {
|
|||||||
default:
|
default:
|
||||||
// LCHAN hidden_type_non_recv_chan
|
// LCHAN hidden_type_non_recv_chan
|
||||||
s2 := p.hidden_type_non_recv_chan()
|
s2 := p.hidden_type_non_recv_chan()
|
||||||
ss := typ(TCHAN)
|
ss := typeChan(s2, Cboth)
|
||||||
ss.Type = s2
|
|
||||||
ss.Chan = Cboth
|
|
||||||
return ss
|
return ss
|
||||||
|
|
||||||
case '(':
|
case '(':
|
||||||
@ -3060,18 +3058,14 @@ func (p *parser) hidden_type_misc() *Type {
|
|||||||
p.next()
|
p.next()
|
||||||
s3 := p.hidden_type_recv_chan()
|
s3 := p.hidden_type_recv_chan()
|
||||||
p.want(')')
|
p.want(')')
|
||||||
ss := typ(TCHAN)
|
ss := typeChan(s3, Cboth)
|
||||||
ss.Type = s3
|
|
||||||
ss.Chan = Cboth
|
|
||||||
return ss
|
return ss
|
||||||
|
|
||||||
case LCOMM:
|
case LCOMM:
|
||||||
// LCHAN hidden_type
|
// LCHAN hidden_type
|
||||||
p.next()
|
p.next()
|
||||||
s3 := p.hidden_type()
|
s3 := p.hidden_type()
|
||||||
ss := typ(TCHAN)
|
ss := typeChan(s3, Csend)
|
||||||
ss.Type = s3
|
|
||||||
ss.Chan = Csend
|
|
||||||
return ss
|
return ss
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3090,9 +3084,7 @@ func (p *parser) hidden_type_recv_chan() *Type {
|
|||||||
p.want(LCHAN)
|
p.want(LCHAN)
|
||||||
s3 := p.hidden_type()
|
s3 := p.hidden_type()
|
||||||
|
|
||||||
ss := typ(TCHAN)
|
ss := typeChan(s3, Crecv)
|
||||||
ss.Type = s3
|
|
||||||
ss.Chan = Crecv
|
|
||||||
return ss
|
return ss
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,6 +259,14 @@ func typeDDDArray(elem *Type) *Type {
|
|||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// typeChan returns a new chan Type with direction dir.
|
||||||
|
func typeChan(elem *Type, dir uint8) *Type {
|
||||||
|
t := typ(TCHAN)
|
||||||
|
t.Type = elem
|
||||||
|
t.Chan = dir
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
|
||||||
func newField() *Field {
|
func newField() *Field {
|
||||||
return &Field{
|
return &Field{
|
||||||
Offset: BADWIDTH,
|
Offset: BADWIDTH,
|
||||||
|
@ -413,10 +413,7 @@ OpSwitch:
|
|||||||
n.Type = nil
|
n.Type = nil
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
t := typ(TCHAN)
|
t := typeChan(l.Type, uint8(n.Etype)) // TODO(marvin): Fix Node.EType type union.
|
||||||
t.Type = l.Type
|
|
||||||
// TODO(marvin): Fix Node.EType type union.
|
|
||||||
t.Chan = uint8(n.Etype)
|
|
||||||
n.Op = OTYPE
|
n.Op = OTYPE
|
||||||
n.Type = t
|
n.Type = t
|
||||||
n.Left = nil
|
n.Left = nil
|
||||||
|
Loading…
Reference in New Issue
Block a user