modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue19555.go (about) 1 // compile 2 3 // Copyright 2017 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package p 8 9 type NodeLink struct{} 10 11 // A role our end of NodeLink is intended to play 12 type LinkRole int64 13 14 const ( 15 LinkServer LinkRole = iota // link created as server 16 LinkClient // link created as client 17 18 // for testing: 19 linkNoRecvSend LinkRole = 1 << 16 // do not spawn serveRecv & serveSend 20 linkFlagsMask LinkRole = (1<<32 - 1) << 16 21 ) 22 23 func NewNodeLink(role LinkRole) *NodeLink { 24 var nextConnId uint32 25 switch role &^ linkFlagsMask { 26 case LinkServer: 27 nextConnId = 0 // all initiated by us connId will be even 28 case LinkClient: 29 nextConnId = 1 // ----//---- odd 30 default: 31 panic("invalid conn role") 32 } 33 34 _ = nextConnId 35 return nil 36 }