...
Run Format

Source file test/fixedbugs/issue5704.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2012 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.
  
  // Issue 5704: Conversions of empty strings to byte
  // or rune slices return empty but non-nil slices.
  
  package main
  
  type (
  	mystring string
  	mybytes  []byte
  	myrunes  []rune
  )
  
  func checkBytes(s []byte, arg string) {
  	if len(s) != 0 {
  		panic("len(" + arg + ") != 0")
  	}
  	if s == nil {
  		panic(arg + " == nil")
  	}
  }
  
  func checkRunes(s []rune, arg string) {
  	if len(s) != 0 {
  		panic("len(" + arg + ") != 0")
  	}
  	if s == nil {
  		panic(arg + " == nil")
  	}
  }
  
  func main() {
  	checkBytes([]byte(""), `[]byte("")`)
  	checkBytes([]byte(mystring("")), `[]byte(mystring(""))`)
  	checkBytes(mybytes(""), `mybytes("")`)
  	checkBytes(mybytes(mystring("")), `mybytes(mystring(""))`)
  
  	checkRunes([]rune(""), `[]rune("")`)
  	checkRunes([]rune(mystring("")), `[]rune(mystring(""))`)
  	checkRunes(myrunes(""), `myrunes("")`)
  	checkRunes(myrunes(mystring("")), `myrunes(mystring(""))`)
  }
  

View as plain text