//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"

//go:fix inline
func alreadyAnnotated[T any](x T) *T { return new(x) } // want `alreadyAnnotated can be an inlinable wrapper around new\(expr\)` alreadyAnnotated:"newlike"

func variadic[T any](x ...T) *[]T { return &x } // nope: reject variadic functions

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\)`
	_ = new(123) // want `call of alreadyAnnotated\(x\) can be simplified to new\(x\)`
	_ = variadic[int]()  		 // nope: reject variadic function calls
)