...
Run Format

Source file test/fixedbugs/issue19201.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2017 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package main
  
  import (
  	"encoding/binary"
  )
  
  var (
  	ch1 = make(chan int)
  	ch2 = make(chan int)
  
  	bin  = []byte("a\000\000\001")
  	want = binary.BigEndian.Uint32(bin)
  
  	c consumer = noopConsumer{}
  )
  
  type msg struct {
  	code uint32
  }
  
  type consumer interface {
  	consume(msg)
  }
  
  type noopConsumer struct{}
  
  func (noopConsumer) consume(msg) {}
  
  func init() {
  	close(ch1)
  }
  
  func main() {
  	var m msg
  	m.code = binary.BigEndian.Uint32(bin)
  
  	select {
  	case <-ch1:
  		c.consume(m)
  		if m.code != want {
  			// can not use m.code here, or it will work
  			panic("BigEndian read failed")
  		}
  	case <-ch2:
  	}
  }
  

View as plain text