Fixed a few find all refs bugs on values #9934
Merged
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.
Since we changed the way we do find all references in VS, we had a few regressions. This should fix the ones mentioned here: #9863
For context, we risked regressions due to the significant memory reduction that came with the change. I'm sure there are more fixes to do; they should be relatively straight forward though.
The one thing with find all references that is not going to be straight forward is performing a find all references on a currently editing buffer (a file that is not saved yet). Unfortunately, a currently editing file is not consolidated to the way type checking works on a project as a whole; it's handled separately. We also have two different ways of getting symbol information, and that's determined if a construct is public or private.
One way to solve this is probably just implementing the FileSystem shim to forward to the editing buffer in VS, which is a giant hack. At some point, we should figure out how to make the F# compiler not rely on a file system; it should work directly with streams and/or buffers.