This test exercises the refactoring of putting arguments, return values, and composite literal elements into a
single line.

-- go.mod --
module unused.mod

go 1.18

-- func_arg/func_arg.go --
package func_arg

func A(
	a string,
	b, c int64,
	x int /*@codeaction("x", "refactor.rewrite.joinLines", result=func_arg)*/,
	y int,
) (r1 string, r2, r3 int64, r4 int, r5 int) {
	return a, b, c, x, y
}

-- @func_arg/func_arg/func_arg.go --
package func_arg

func A(a string, b, c int64, x int /*@codeaction("x", "refactor.rewrite.joinLines", result=func_arg)*/, y int) (r1 string, r2, r3 int64, r4 int, r5 int) {
	return a, b, c, x, y
}

-- func_ret/func_ret.go --
package func_ret

func A(a string, b, c int64, x int, y int) (
	r1 string /*@codeaction("r1", "refactor.rewrite.joinLines", result=func_ret)*/,
	r2, r3 int64,
	r4 int,
	r5 int,
) {
	return a, b, c, x, y
}

-- @func_ret/func_ret/func_ret.go --
package func_ret

func A(a string, b, c int64, x int, y int) (r1 string /*@codeaction("r1", "refactor.rewrite.joinLines", result=func_ret)*/, r2, r3 int64, r4 int, r5 int) {
	return a, b, c, x, y
}

-- functype_arg/functype_arg.go --
package functype_arg

type A func(
	a string,
	b, c int64,
	x int /*@codeaction("x", "refactor.rewrite.joinLines", result=functype_arg)*/,
	y int,
) (r1 string, r2, r3 int64, r4 int, r5 int)

-- @functype_arg/functype_arg/functype_arg.go --
package functype_arg

type A func(a string, b, c int64, x int /*@codeaction("x", "refactor.rewrite.joinLines", result=functype_arg)*/, y int) (r1 string, r2, r3 int64, r4 int, r5 int)

-- functype_ret/functype_ret.go --
package functype_ret

type A func(a string, b, c int64, x int, y int) (
	r1 string /*@codeaction("r1", "refactor.rewrite.joinLines", result=functype_ret)*/,
	r2, r3 int64,
	r4 int,
	r5 int,
)

-- @functype_ret/functype_ret/functype_ret.go --
package functype_ret

type A func(a string, b, c int64, x int, y int) (r1 string /*@codeaction("r1", "refactor.rewrite.joinLines", result=functype_ret)*/, r2, r3 int64, r4 int, r5 int)

-- func_call/func_call.go --
package func_call

import "fmt"

func F() {
	fmt.Println(
		1 /*@codeaction("1", "refactor.rewrite.joinLines", result=func_call)*/,
		2,
		3,
		fmt.Sprintf("hello %d", 4),
	)
}

-- @func_call/func_call/func_call.go --
package func_call

import "fmt"

func F() {
	fmt.Println(1 /*@codeaction("1", "refactor.rewrite.joinLines", result=func_call)*/, 2, 3, fmt.Sprintf("hello %d", 4))
}

-- indent/indent.go --
package indent

import "fmt"

func F() {
	fmt.Println(
        1,
        2,
        3,
        fmt.Sprintf(
            "hello %d" /*@codeaction("hello", "refactor.rewrite.joinLines", result=indent)*/,
            4,
        ))
}

-- @indent/indent/indent.go --
package indent

import "fmt"

func F() {
	fmt.Println(
        1,
        2,
        3,
        fmt.Sprintf("hello %d" /*@codeaction("hello", "refactor.rewrite.joinLines", result=indent)*/, 4))
}

-- structelts/structelts.go --
package structelts

type A struct{
	a int
	b int
}

func F() {
	_ = A{
		a: 1,
		b: 2 /*@codeaction("b", "refactor.rewrite.joinLines", result=structelts)*/,
	}
}

-- @structelts/structelts/structelts.go --
package structelts

type A struct{
	a int
	b int
}

func F() {
	_ = A{a: 1, b: 2 /*@codeaction("b", "refactor.rewrite.joinLines", result=structelts)*/}
}

-- sliceelts/sliceelts.go --
package sliceelts

func F() {
	_ = []int{
		1 /*@codeaction("1", "refactor.rewrite.joinLines", result=sliceelts)*/,
		2,
	}
}

-- @sliceelts/sliceelts/sliceelts.go --
package sliceelts

func F() {
	_ = []int{1 /*@codeaction("1", "refactor.rewrite.joinLines", result=sliceelts)*/, 2}
}

-- mapelts/mapelts.go --
package mapelts

func F() {
	_ = map[string]int{
		"a": 1 /*@codeaction("1", "refactor.rewrite.joinLines", result=mapelts)*/,
		"b": 2,
	}
}

-- @mapelts/mapelts/mapelts.go --
package mapelts

func F() {
	_ = map[string]int{"a": 1 /*@codeaction("1", "refactor.rewrite.joinLines", result=mapelts)*/, "b": 2}
}

-- starcomment/starcomment.go --
package starcomment

func A(
	/*1*/ x /*2*/ string /*3*/ /*@codeaction("x", "refactor.rewrite.joinLines", result=starcomment)*/,
	/*4*/ y /*5*/ int /*6*/,
) (string, int) {
	return x, y
}

-- @starcomment/starcomment/starcomment.go --
package starcomment

func A(/*1*/ x /*2*/ string /*3*/ /*@codeaction("x", "refactor.rewrite.joinLines", result=starcomment)*/, /*4*/ y /*5*/ int /*6*/) (string, int) {
	return x, y
}

