gofumpt -w foo.go
cmp foo.go foo.go.golden

gofumpt -d foo.go.golden
! stdout .

-- foo.go --
package p

type i1 interface {

	a(x int) int

	b(x int) int

	c(x int) int

	D()

	E()

	f()
}

type i2 interface {

	// comment for a
	a(x int) int

	// comment between a and b

	// comment for b
	b(x int) int

	// comment between b and c

	c(x int) int

	d(x int) int

	// comment for e
	e(x int) int

}

type i3 interface {
	a(x int) int

	// standalone comment

	b(x int) int
}

type leadingLine1 interface {


	a(x int) int
}

type leadingLine2 interface {

	a(x int) int
}

type leadingLine3 interface {

	// comment
	a(x int) int
}

type leadingLine4 interface {
	// comment

	a(x int) int
}

type leadingLine5 interface {
	// comment

	// comment for a
	a(x int) int
}

type leadingLine6 interface {

	// comment

	// comment for a
	a(x int) int
}

type leadingLine7 interface {


	// comment

	// comment for a
	a(x int) int
}

type leadingLine8 interface {
	// comment
}
-- foo.go.golden --
package p

type i1 interface {
	a(x int) int
	b(x int) int
	c(x int) int

	D()
	E()

	f()
}

type i2 interface {
	// comment for a
	a(x int) int

	// comment between a and b

	// comment for b
	b(x int) int

	// comment between b and c

	c(x int) int
	d(x int) int

	// comment for e
	e(x int) int
}

type i3 interface {
	a(x int) int

	// standalone comment

	b(x int) int
}

type leadingLine1 interface {
	a(x int) int
}

type leadingLine2 interface {
	a(x int) int
}

type leadingLine3 interface {
	// comment
	a(x int) int
}

type leadingLine4 interface {
	// comment

	a(x int) int
}

type leadingLine5 interface {
	// comment

	// comment for a
	a(x int) int
}

type leadingLine6 interface {
	// comment

	// comment for a
	a(x int) int
}

type leadingLine7 interface {
	// comment

	// comment for a
	a(x int) int
}

type leadingLine8 interface {
	// comment
}
