use funcref() instead of function() for closures used as callbacks #1155
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.
Use funcref() instead of function() to get a Funcref that will retrieve
the function by reference instead of by name. function() returns a
Funcref that resolves the function by name, which caused multiple
concurrent jobs of the same type to both execute the callback that
closed over the arguments of the last job to be started. funcref()
returns a Funcref that returns the function by reference (not by name),
so each job is assured that its callbacks execute the function that
closed over the arguments of that job.
Also refactored a couple of the guru functions to check the result of
guru_cmd for stdin_content explicitly instead of assuming that
guru_cmd's result has a stdin_content key when the buffer is modified.
The easiest way to see the problems that this PR addresses is to set
g:go_auto_sameids=1
, and then runGoReferrers
on some reference. One would expect the location list to be opened, but it never did.