This is a minimal test of the refactor.inline code action, without resolve support.
See inline_resolve.txt for same test with resolve support.

-- go.mod --
module example.com/codeaction
go 1.18

-- a/a.go --
package a

func _() {
	println(add(1, 2)) //@codeaction("add", ")", "refactor.inline", inline)
}

func add(x, y int) int { return x + y }

-- @inline/a/a.go --
package a

func _() {
	println(1 + 2) //@codeaction("add", ")", "refactor.inline", inline)
}

func add(x, y int) int { return x + y }
