...
Run Format

Source file test/fixedbugs/bug184.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2009 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 "fmt"
  
  type Buffer int
  
  func (*Buffer) Read() {}
  
  type Reader interface {
  	Read()
  }
  
  func f() *Buffer { return nil }
  
  func g() Reader {
  	// implicit interface conversion in assignment during return
  	return f()
  }
  
  func h() (b *Buffer, ok bool) { return }
  
  func i() (r Reader, ok bool) {
  	// implicit interface conversion in multi-assignment during return
  	return h()
  }
  
  func fmter() (s string, i int, t string) { return "%#x %q", 100, "hello" }
  
  func main() {
  	b := g()
  	bb, ok := b.(*Buffer)
  	_, _, _ = b, bb, ok
  
  	b, ok = i()
  	bb, ok = b.(*Buffer)
  	_, _, _ = b, bb, ok
  
  	s := fmt.Sprintf(fmter())
  	if s != "0x64 \"hello\"" {
  		println(s)
  		panic("fail")
  	}
  }
  

View as plain text