MCPcopy Index your code
hub / github.com/maruel/panicparse / merge

Method merge

stack/stack.go:277–296  ·  view source on GitHub ↗

merge merges two similar Args, zapping out differences.

(r *Args)

Source from the content-addressed store, hash-verified

275
276// merge merges two similar Args, zapping out differences.
277func (a *Args) merge(r *Args) Args {
278 out := Args{
279 Values: make([]Arg, len(a.Values)),
280 Elided: a.Elided,
281 }
282 for i, l := range a.Values {
283 rv := &r.Values[i]
284 if l.IsAggregate {
285 out.Values[i].IsAggregate = true
286 out.Values[i].Fields = l.Fields.merge(&rv.Fields)
287 } else if !l.equal(rv) {
288 out.Values[i].Name = "*"
289 out.Values[i].Value = l.Value
290 out.Values[i].IsPtr = l.IsPtr
291 } else {
292 out.Values[i] = l
293 }
294 }
295 return out
296}
297
298// walk traverses all non-aggregate arguments in the Args struct, calling the
299// provided visitor function with each Arg.

Callers 3

mergeMethod · 0.45
mergeMethod · 0.45
mergeMethod · 0.45

Calls 1

equalMethod · 0.45

Tested by

no test coverage detected