forked from TrueCloudLab/neoneo-go
b57dd2cad6
Notice that this doesn't differentiate between (*T) and (T) receivers always treating them as is. But we have the same problem with arguments now and the number of inlined calls is limited, usually we want this behavior.
58 lines
791 B
Go
58 lines
791 B
Go
package inline
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline/a"
|
|
"github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline/b"
|
|
)
|
|
|
|
func NoArgsNoReturn() {}
|
|
func NoArgsReturn1() int {
|
|
return 1
|
|
}
|
|
func Sum(a, b int) int {
|
|
return a + b
|
|
}
|
|
func sum(x, y int) int {
|
|
return x + y
|
|
}
|
|
func SumSquared(a, b int) int {
|
|
return sum(a, b) * (a + b)
|
|
}
|
|
|
|
var A = 1
|
|
|
|
func GetSumSameName() int {
|
|
return a.GetA() + b.GetA() + A
|
|
}
|
|
|
|
func DropInsideInline() int {
|
|
sum(1, 2)
|
|
sum(3, 4)
|
|
return 7
|
|
}
|
|
|
|
func VarSum(a int, b ...int) int {
|
|
sum := a
|
|
for i := range b {
|
|
sum += b[i]
|
|
}
|
|
return sum
|
|
}
|
|
|
|
func SumVar(a, b int) int {
|
|
return VarSum(a, b)
|
|
}
|
|
|
|
func Concat(n int) int {
|
|
return n*100 + b.A*10 + A
|
|
}
|
|
|
|
type T struct {
|
|
N int
|
|
}
|
|
|
|
func (t *T) Inc(i int) int {
|
|
n := t.N
|
|
t.N += i
|
|
return n
|
|
}
|