[short] skip # This test may go away when the loopvar experiment goes away. # Accurate reporting of notable loops in the presence of inlining # can create warnings in sibling directories, and it's nice if those # can be trimmed like subdirectory paths are. env GOEXPERIMENT=loopvar go build -gcflags=inlines/a=-d=loopvar=2 . stderr ^\.[\\/]b[\\/]b\.go:12:6:.*loop.inlined.into.a[\\/]a\.go stderr ^\.[\\/]b[\\/]b\.go:12:9:.*loop.inlined.into.a[\\/]a\.go -- go.mod -- module inlines go 1.21 -- a/a.go -- // Copyright 2023 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 a import "inlines/b" func F() []*int { var s []*int for i := 0; i < 10; i++ { s = append(s, &i) } return s } func Fb() []*int { bf, _ := b.F() return bf } -- b/b.go -- package b var slice = []int{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024} func F() ([]*int, []*int) { return g() } func g() ([]*int, []*int) { var s []*int var t []*int for i, j := range slice { s = append(s, &i) t = append(t, &j) } return s[:len(s)-1], t } -- main.go -- package main import ( "fmt" "inlines/a" "inlines/b" ) func sum(s []*int) int { sum := 0 for _, pi := range s { sum += *pi } return sum } func main() { af := a.F() bf, _ := b.F() abf := a.Fb() saf, sbf, sabf := sum(af), sum(bf), sum(abf) fmt.Printf("af, bf, abf sums = %d, %d, %d\n", saf, sbf, sabf) }