Documentation ¶
Overview ¶
Package bug provides utilities for reporting internal bugs, and being notified when they occur.
Philosophically, because gopls runs as a sidecar process that the user does not directly control, sometimes it keeps going on broken invariants rather than panicking. In those cases, bug reports provide a mechanism to alert developers and capture relevant metadata.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var PanicOnBugs = false
PanicOnBugs controls whether to panic when bugs are reported.
It may be set to true during testing.
Functions ¶
func Errorf ¶
Errorf calls fmt.Errorf for the given arguments, and reports the resulting error message as a bug.
func Notify ¶
func Notify() <-chan Bug
Notify returns a channel that will be sent the next bug to occur on the server. This channel only ever receives one bug.
Types ¶
type Bug ¶
type Bug struct { File string // file containing the call to bug.Report Line int // line containing the call to bug.Report Description string // description of the bug Data Data // additional metadata Key string // key identifying the bug (file:line if available) Stack string // call stack }
A Bug represents an unexpected event or broken invariant. They are used for capturing metadata that helps us understand the event.