Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduces an additional format mode when emitting events with the
instrument
attribute macro when returning from a function.Motivation
It is often useful to emit events when a function returns (this can be done with the
ret
orerr
options for theinstrument
attribute macro). Presently we can only emit these events when we print the return values (withDebug
orDisplay
). There are circumstances where the returns values are not appropriate to print (consider a function that returns a slice that may be very log) or they cannot be printed (a type from a foreign library that neither implementsDebug
norDisplay
). In this case it is still useful to print an event on the function returning even if not printing the return value.The example program
outputs
Solution
Adding a variant to
FormatMode
that sets the return value for the event asEmpty
.Limitations
Due to the wider design this does not allow for emitting events when the return value contains a reference, this should be fixed in the future.
But even without this, this change is useful.