From 574d7a8ea2f1b18b2bdc64b4ba36dad05ecaf5c5 Mon Sep 17 00:00:00 2001 From: Simba Peng <1531315@qq.com> Date: Wed, 24 Aug 2022 22:21:35 +0800 Subject: [PATCH] fix: generate injection method with receiver (#371) --- internal/wire/wire.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/wire/wire.go b/internal/wire/wire.go index 5cedeb1a..1294c2f8 100644 --- a/internal/wire/wire.go +++ b/internal/wire/wire.go @@ -602,7 +602,16 @@ func injectPass(name string, sig *types.Signature, calls []call, set *ProviderSe ig.p("%s\n", c.Text) } } - ig.p("func %s(", name) + var recv string + if v := sig.Recv(); v != nil { + switch t := v.Type().(type) { + case *types.Pointer: + recv = " (*" + t.Elem().(*types.Named).Obj().Name() + ")" + case *types.Named: + recv = " (" + t.Obj().Name() + ")" + } + } + ig.p("func%s %s(", recv, name) for i := 0; i < params.Len(); i++ { if i > 0 { ig.p(", ")