This test checks the behavior of the 'move type' code action.

-- settings.json --
{
	"moveType": true
}

-- flags --
-ignore_extra_diags

-- go.mod --
module example.com

-- movetype/struct.go --
package movetype

import (
	"time"
	"html/template"
)

// This comment gets deleted.
type Struct struct { //@ codeaction("Struct", "refactor.move.moveType", result=basic)
	Seconds  time.Duration
}

type (
	S1 struct { //@ codeaction("S1", "refactor.move.moveType", result=single)
		Template template.HTML
	}

	S2 struct {
		Template template.HTML
	}
)

-- @basic/movetype/struct.go --
package movetype

import (
	
	"html/template"
)


type (
	S1 struct { //@ codeaction("S1", "refactor.move.moveType", result=single)
		Template template.HTML
	}

	S2 struct {
		Template template.HTML
	}
)

-- @single/movetype/struct.go --
package movetype

import (
	"time"
	"html/template"
)

// This comment gets deleted.
type Struct struct { //@ codeaction("Struct", "refactor.move.moveType", result=basic)
	Seconds  time.Duration
}

type (
	
	S2 struct {
		Template template.HTML
	}
)

-- movetype/otherpkg/destfile.go --
package otherpkg

-- @basic/movetype/otherpkg/destfile.go --
package otherpkg

import "time"

type Struct struct { //@ codeaction("Struct", "refactor.move.moveType", result=basic)
	Seconds time.Duration
}
-- @single/movetype/otherpkg/destfile.go --
package otherpkg

import "html/template"

type S1 struct { //@ codeaction("S1", "refactor.move.moveType", result=single)
	Template template.HTML
}
