mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-13 15:45:01 +00:00
21a7f3d760
Some arguments can be inlined functions themselves thus requiring additional attention. Otherwise we can get less local variables than really used by STLOCs (and subsequent program crash).
48 lines
703 B
Go
48 lines
703 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
|
|
}
|