commit | 31bee513bff70cd5127f50d944a53fc0c2a8dac9 | [log] [tgz] |
---|---|---|
author | Jonathan Amsterdam <jba@google.com> | Fri Jan 27 01:53:05 2023 -0500 |
committer | Jonathan Amsterdam <jba@google.com> | Fri Jan 27 19:37:34 2023 +0000 |
tree | c6efc970a5210d63f65ccc1b769a174f3509ba83 | |
parent | cafedaf64729e54f9b9aac879ac5ee30112d02a2 [diff] |
slog: correctly represent the zero Time in a Value Storing the zero time.Time in a Value and then retrieving it gave a non-zero time. The reason is that UnixNanos is called to store a time.Time in a Value, and its result is undefined for the zero time (or any time before the year 1678 or after 2262, but I don't think we need to worry about those). One solution, implemented in this CL, is to use a nil *time.Location to represent the zero time. the time.Time.Location method never returns nil, so a Value with a nil *time.Location in its `any` field cannot be mistaken for any other Value, time.Time or otherwise. Change-Id: Icba66f2ec16e21ed574c3336e1996ed759ab1c17 Reviewed-on: https://go-review.googlesource.com/c/exp/+/463817 Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
This subrepository holds experimental and deprecated (in the old
directory) packages.
The idea for this subrepository originated as the pkg/exp
directory of the main repository, but its presence there made it unavailable to users of the binary downloads of the Go installation. The subrepository has therefore been created to make it possible to go get
these packages.
Warning: Packages here are experimental and unreliable. Some may one day be promoted to the main repository or other subrepository, or they may be modified arbitrarily or even disappear altogether.
In short, code in this subrepository is not subject to the Go 1 compatibility promise. (No subrepo is, but the promise is even more likely to be violated by go.exp than the others.)
Caveat emptor.