Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix a wingman bug caused by mismanaged stale data #1657

Merged
merged 23 commits into from
Apr 6, 2021

Conversation

isovector
Copy link
Collaborator

@isovector isovector commented Apr 3, 2021

Wingman uses a lot of potentially stale rules, and each comes with its own position mapping. But I was stupid when I first wrote this, and didn't realize just because there results were stale didn't mean they refer to the same document.

This PR adds some type-level information, allowing me to track the age of results from Shake. By throwing an untouchable variable inside of the stale tag, the compiler makes sure I haven't accidentally scrambled ranges between different versions of the document.

@isovector isovector changed the title [wip] Fix a wingman bug caused by mismanaged stale data Fix a wingman bug caused by mismanaged stale data Apr 4, 2021
@isovector isovector marked this pull request as ready for review April 4, 2021 21:39
@isovector isovector added the merge me Label to trigger pull request merge label Apr 4, 2021
wz1000 and others added 11 commits April 4, 2021 18:24
* Update to lsp-1.2

* fix stack

* fix splice plugin tests

* fix tactic plugin tests

* fix some tests

* fix some tests

* fix outline tests

* hlint

* fix func-test
* Avoid reordering plugins

Order of execution matters for notification plugins, so lets avoid unnecessary
reorderings

* remove duplicate plugins

* fix tests
* Civilized indexing progress reporting

* optProgressStyle

* Consistency: Indexing references ==> Indexing

* Fix progress tests
Restarting the session will result in progress reporting and other messages
being sent to the client, which might have already closed the stream

Co-authored-by: Potato Hatsue <[email protected]>
* Fix importing type operators

* Update test

* Add expected failure tests
* log hiedb exceptions before killing the server

* This is not the hiedb thread - fix message

* Fix handler - either an error or success
* Skip individual steps

* Skip individual steps

* And needs pre_job
@pepeiborra
Copy link
Collaborator

This looks like it could be generally useful. @isovector might be worth putting the tracked use combinators inside ghcide, in a module Development.IDE.Core.UseStale or similar?

@isovector isovector removed the merge me Label to trigger pull request merge label Apr 5, 2021
@isovector
Copy link
Collaborator Author

isovector commented Apr 5, 2021

@pepeiborra . Done. PTAL, and feel free to mark as merge me if you're happy with it!

@pepeiborra pepeiborra added the merge me Label to trigger pull request merge label Apr 5, 2021
@mergify mergify bot merged commit c6421fd into haskell:master Apr 6, 2021
@isovector isovector deleted the no-stale-ranges branch May 21, 2021 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge me Label to trigger pull request merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants