]> Cypherpunks.ru repositories - gostls13.git/blob - test/fixedbugs/bug401.go
c58e1ca40042eef7f25f8db42e4288ebfe8166de
[gostls13.git] / test / fixedbugs / bug401.go
1 // run
2
3 // Copyright 2011 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 // Issue 2582
8 package main
9
10 type T struct{}
11
12 //go:noinline
13 func (T) cplx() complex128 {
14         return complex(1, 0)
15 }
16
17 func (T) cplx2() complex128 {
18         return complex(0, 1)
19 }
20
21 type I interface {
22         cplx() complex128
23 }
24
25 func main() {
26
27         var t T
28
29         if v := real(t.cplx()); v != 1 {
30                 panic("not-inlined complex call failed")
31         }
32         _ = imag(t.cplx())
33
34         _ = real(t.cplx2())
35         if v := imag(t.cplx2()); v != 1 {
36                 panic("potentially inlined complex call failed")
37         }
38
39         var i I
40         i = t
41         if v := real(i.cplx()); v != 1 {
42                 panic("potentially inlined complex call failed")
43         }
44         _ = imag(i.cplx())
45 }