in tools/go-agent/tools/enhancement.go [66:99]
func EnhanceParameterNames(fields *dst.FieldList, fieldType FieldListType) []*ParameterInfo {
if fields == nil {
return nil
}
result := make([]*ParameterInfo, 0)
for i, f := range fields.List {
var defineName string
switch fieldType {
case FieldListTypeParam:
defineName = fmt.Sprintf("skywalking_param_%d", i)
case FieldListTypeResult:
defineName = fmt.Sprintf("skywalking_result_%d", i)
case FieldListTypeRecv:
defineName = fmt.Sprintf("skywalking_recv_%d", i)
}
if len(f.Names) == 0 {
f.Names = []*dst.Ident{{Name: defineName}}
result = append(result, newParameterInfo(defineName, f.Type))
} else {
for _, n := range f.Names {
if n.Name == "_" {
*n = *dst.NewIdent(defineName)
break
}
}
for _, n := range f.Names {
result = append(result, newParameterInfo(n.Name, f.Type))
break
}
}
}
return result
}