| // errorcheckwithauto -0 -m -d=inlfuncswithclosures=1 |
| //go:build !goexperiment.unified |
| // +build !goexperiment.unified |
| |
| // Copyright 2022 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. |
| |
| package foo |
| |
| func r(z int) int { |
| foo := func(x int) int { // ERROR "can inline r.func1" "func literal does not escape" |
| return x + z |
| } |
| bar := func(x int) int { // ERROR "func literal does not escape" "can inline r.func2" |
| return x + func(y int) int { // ERROR "can inline r.func2.1" "can inline r.func3" |
| return 2*y + x*z |
| }(x) // ERROR "inlining call to r.func2.1" |
| } |
| return foo(42) + bar(42) // ERROR "inlining call to r.func1" "inlining call to r.func2" "inlining call to r.func3" |
| } |