You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 1, 2021. It is now read-only.
Yeah, it looks like we’re prefixing each frame output with a newline. This probably wasn’t noticed much, because the verbose formatting for errors themselves, was expecting this behavior and the output looked fine there, because it just doesn’t add a newline at the end of the error message, before dumping the stack frame.
More ideally, we probably only want newlines between frames, or after every frame. Both would then require the verbose formatting to inject a newline before getting to the frame output, but that’s pretty easy, and not really any sort of obstacle.
The arguments for “between each frame” vs “at the end of each frame” lies in how we consider the verbose output:
between each frame: we are still formatting an error message and programs should expect errors to not end in punctuation, let alone a newline. That way they can be easily composed into log messages, etc. And this option would at least not change the output of verbose formatted errors from what they were before.
at the end of each frame: But we are injecting newlines, so we’ve already broken proper expectations about what an error message should look like. (Yes, this has broken log ingest at my company before.) Since we are now effectively emitting a formatted text file, a proper text file should end in a newline.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
https://play.golang.org/p/9pIaAGoKF1i
Fixing this might break formatting elsewhere, so needs to be done carefully.
The text was updated successfully, but these errors were encountered: