@@ -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