package implementation

import "golang.org/x/tools/internal/lsp/implementation/other"

type ImpP struct{} //@ImpP,implementations("ImpP", Laugher, OtherLaugher)

func (*ImpP) Laugh() { //@mark(LaughP, "Laugh"),implementations("Laugh", Laugh, OtherLaugh)
}

type ImpS struct{} //@ImpS,implementations("ImpS", Laugher, OtherLaugher)

func (ImpS) Laugh() { //@mark(LaughS, "Laugh"),implementations("Laugh", Laugh, OtherLaugh)
}

type Laugher interface { //@Laugher,implementations("Laugher", ImpP, OtherImpP, ImpS, OtherImpS)
	Laugh() //@Laugh,implementations("Laugh", LaughP, OtherLaughP, LaughS, OtherLaughS)
}

type Foo struct { //@implementations("Foo", Joker)
	other.Foo
}

type Joker interface { //@Joker
	Joke() //@Joke,implementations("Joke", ImpJoker)
}

type cryer int //@implementations("cryer", Cryer)

func (cryer) Cry(other.CryType) {} //@mark(CryImpl, "Cry"),implementations("Cry", Cry)

type Empty interface{} //@implementations("Empty")
