diff --git a/pkg/compiler/func_scope.go b/pkg/compiler/func_scope.go index 5e2534287..672b839ef 100644 --- a/pkg/compiler/func_scope.go +++ b/pkg/compiler/func_scope.go @@ -162,7 +162,6 @@ func (c *codegen) countLocalsInline(decl *ast.FuncDecl, pkg *types.Package, f *f switch n := n.(type) { case *ast.CallExpr: size += c.countLocalsCall(n, pkg) - return false case *ast.FuncType: num := n.Results.NumFields() if num != 0 && len(n.Results.List[0].Names) != 0 { diff --git a/pkg/compiler/inline_test.go b/pkg/compiler/inline_test.go index eeb9bfe3a..4c814cf26 100644 --- a/pkg/compiler/inline_test.go +++ b/pkg/compiler/inline_test.go @@ -209,6 +209,15 @@ func TestInlineGlobalVariable(t *testing.T) { }) } +func TestInlineVariadicInInlinedCall(t *testing.T) { + src := `package foo + import "github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline" + func Main() int { + return inline.SumSquared(inline.SumVar(3, 4) - 2, 3) + }` + eval(t, src, big.NewInt(64)) +} + func TestInlineConversion(t *testing.T) { src1 := `package foo import "github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline" diff --git a/pkg/compiler/testdata/inline/inline.go b/pkg/compiler/testdata/inline/inline.go index c319c6b1d..62aaf2c79 100644 --- a/pkg/compiler/testdata/inline/inline.go +++ b/pkg/compiler/testdata/inline/inline.go @@ -39,6 +39,10 @@ func VarSum(a int, b ...int) int { return sum } +func SumVar(a, b int) int { + return VarSum(a, b) +} + func Concat(n int) int { return n*100 + b.A*10 + A }