blob: 9911a30df3e4df9c18e8e8ac3e2af6cc2ea3b5de [file] [log] [blame] [edit]
Regression test for https://go.dev/issue/76287:
ensure that inlining a function that wraps go1.26's new(expr)
correctly inserts a conversion as needed, just as it would for a
declared generic function equivalent to 'new'.
- f uses a declared _new(expr) function.
- g uses the built-in new(expr) function.
-- go.mod --
module testdata
go 1.26
-- common.go --
package p
func _new[T any](x T) *T { return &x }
-- f.go --
package p
func f(x int64) *int64 { return _new(x) }
var _ *int64 = f(42) //@ inline(re"f", f)
-- g.go --
package p
func g(x int64) *int64 { return new(x) }
var _ *int64 = g(42) //@ inline(re"g", g)
-- f --
package p
func f(x int64) *int64 { return _new(x) }
var _ *int64 = _new(int64(42)) //@ inline(re"f", f)
-- g --
package p
func g(x int64) *int64 { return new(x) }
var _ *int64 = new(int64(42)) //@ inline(re"g", g)