mirror of https://github.com/golang/go.git
Add a struct called Source that holds the function, file and line of a location in the program's source code. When HandleOptions.AddSource is true, the ReplaceAttr function will get an Attr whose key is SourceKey and whose value is a *Source. We use *Source instead of Source to save an allocation. The pointer and the value each cause one allocation up front: the pointer when it is created, and the value when it is assigned to the `any` field of a slog.Value (handle.go:283). If a ReplaceAttr function wanted to modify a Source value, it would have to create a new slog.Value to return, causing a second allocation, but the function can modify a *Source in place. TextHandler displays a Source as "file:line". JSONHandler displays a Source as a group of its non-zero fields. This replaces the previous design, where source location was always a string with the format "file:line". The new design gives users more control over how to output and consume source locations. Fixes #59280. Change-Id: I84475abd5ed83fc354b50e34325c7b246cf327c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/486376 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> |
||
|---|---|---|
| .. | ||
| 25448.txt | ||
| 34648.txt | ||
| 40221.txt | ||
| 41198.txt | ||
| 44855.txt | ||
| 46159.txt | ||
| 46259.txt | ||
| 52221.txt | ||
| 52600.txt | ||
| 53573.txt | ||
| 53685.txt | ||
| 53747.txt | ||
| 54386.txt | ||
| 54768.txt | ||
| 55002.txt | ||
| 55079.txt | ||
| 55107.txt | ||
| 56102.txt | ||
| 56345.txt | ||
| 56491.txt | ||
| 56539.txt | ||
| 56661.txt | ||
| 56887.txt | ||
| 56892.txt | ||
| 56906.txt | ||
| 56921.txt | ||
| 56984.txt | ||
| 56986.txt | ||
| 57237.txt | ||
| 57433.txt | ||
| 57436.txt | ||
| 57708.txt | ||
| 57786.txt | ||
| 57928.txt | ||
| 59033.txt | ||
| 59060.txt | ||
| 59166.txt | ||
| 59280.txt | ||