...
Run Format

Source file test/fixedbugs/bug401.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2011 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 2582
  package main
  
  type T struct{}
  
  //go:noinline
  func (T) cplx() complex128 {
  	return complex(1, 0)
  }
  
  func (T) cplx2() complex128 {
  	return complex(0, 1)
  }
  
  type I interface {
  	cplx() complex128
  }
  
  func main() {
  
  	var t T
  
  	if v := real(t.cplx()); v != 1 {
  		panic("not-inlined complex call failed")
  	}
  	_ = imag(t.cplx())
  
  	_ = real(t.cplx2())
  	if v := imag(t.cplx2()); v != 1 {
  		panic("potentially inlined complex call failed")
  	}
  
  	var i I
  	i = t
  	if v := real(i.cplx()); v != 1 {
  		panic("potentially inlined complex call failed")
  	}
  	_ = imag(i.cplx())
  }
  

View as plain text