Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the type errors pattern
Totals that concatenate, sorts that put 10 before 9, comparisons that refuse to run.
What went wrong: The Add method was declared with a value receiver (m Metric), which receives a full copy of the struct. Mutating m.Total inside the method modified the temporary copy and left the original caller struct unchanged.
The fix: Change the method receiver to a pointer receiver (m *Metric) so mutations affect the actual struct instance.
Remember: In Go, use pointer receivers whenever a method needs to mutate the receiver struct.
The pattern behind it: type errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/5a35e2de-62b5-4a68-979a-698197e20a5b" title="Debugging challenge: Value receiver fails to mutate struct state" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/5a35e2de-62b5-4a68-979a-698197e20a5b">TryBugHunt</a></p>