blob: 8f3fe762f781ceb4edfbe7da8eaeefd921aaf9a2 [file] [log] [blame] [edit]
//go:build go1.26
package newexpr
// intVar returns a new var whose value is i.
//
//go:fix inline
func intVar(i int) *int { return new(i) } // want `intVar can be an inlinable wrapper around new\(expr\)` intVar:"newlike"
//go:fix inline
func int64Var(i int64) *int64 { return new(i) } // want `int64Var can be an inlinable wrapper around new\(expr\)` int64Var:"newlike"
//go:fix inline
func stringVar(s string) *string { return new(s) } // want `stringVar can be an inlinable wrapper around new\(expr\)` stringVar:"newlike"
//go:fix inline
func varOf[T any](x T) *T { return new(x) } // want `varOf can be an inlinable wrapper around new\(expr\)` varOf:"newlike"
var (
s struct {
int
string
}
_ = new(123) // want `call of intVar\(x\) can be simplified to new\(x\)`
_ = int64Var(123) // nope: implicit conversion from untyped int to int64
_ = new("abc") // want `call of stringVar\(x\) can be simplified to new\(x\)`
_ = new(s) // want `call of varOf\(x\) can be simplified to new\(x\)`
_ = new(123) // want `call of varOf\(x\) can be simplified to new\(x\)`
_ = new(int64(123)) // want `call of varOf\(x\) can be simplified to new\(x\)`
_ = new(123) // want `call of varOf\(x\) can be simplified to new\(x\)`
_ = varOf[int64](123) // nope: implicit conversion from untyped int to int64
_ = new( // want `call of varOf\(x\) can be simplified to new\(x\)`
new(123)) // want `call of varOf\(x\) can be simplified to new\(x\)`
)