Skip to content

Commit 2071ca0

Browse files
kesonankevwan
authored andcommitted
fix #5481
1 parent b01831b commit 2071ca0

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

tools/goctl/rpc/generator/gencall.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,26 @@ func (g *Generator) genCallGroup(ctx DirContext, proto parser.Proto, cfg *conf.C
6464
isCallPkgSameToGrpcPkg := childDir == ctx.GetProtoGo().Filename
6565

6666
serviceName := stringx.From(service.Name).ToCamel()
67+
68+
// Collect only the message types actually used by this service's RPCs,
69+
// so that each client file only aliases its own request/response types.
70+
usedTypes := collection.NewSet[string]()
71+
for _, rpc := range service.RPC {
72+
usedTypes.Add(parser.CamelCase(rpc.RequestType))
73+
usedTypes.Add(parser.CamelCase(rpc.ReturnsType))
74+
}
75+
6776
alias := collection.NewSet[string]()
6877
var hasSameNameBetweenMessageAndService bool
6978
for _, item := range proto.Message {
7079
msgName := getMessageName(*item.Message)
80+
camelMsgName := parser.CamelCase(msgName)
7181
if serviceName == msgName {
7282
hasSameNameBetweenMessageAndService = true
7383
}
74-
if !isCallPkgSameToPbPkg {
75-
alias.Add(fmt.Sprintf("%s = %s", parser.CamelCase(msgName),
76-
fmt.Sprintf("%s.%s", proto.PbPackage, parser.CamelCase(msgName))))
84+
if !isCallPkgSameToPbPkg && usedTypes.Contains(camelMsgName) {
85+
alias.Add(fmt.Sprintf("%s = %s", camelMsgName,
86+
fmt.Sprintf("%s.%s", proto.PbPackage, camelMsgName)))
7787
}
7888
}
7989
if hasSameNameBetweenMessageAndService {

0 commit comments

Comments
 (0)