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
Compile and load these 2 modules into the ide server:
moduleAwherefn::Int->String
fn x =show x
moduleBwhereimportA (fn)
bFn::String
bFn = fn 1
Change module A.fn to
fn::String->String
fn s = s <>"hi!"
Recompile A without letting the server know (start it with the --editor-mode flag and recompile module A from the cmdline with purs compile src/A.purs)
Make a change to module B and fast-rebuild through ide, it does not show any errors, and it continues to generate code for B that assumes the old signature of A.fn is still valid, but instead the code fails at runtime.
This is a known issue, and I do not have a satisfying solution for the problem at hand. It basically boils down to cache invalidation between the FS and the ide servers internal state. Empirically file watching misses changes, and doesn't interact well with adding and removing files and avoiding it by polling creates too much overhead.
The text was updated successfully, but these errors were encountered:
When I rename a module a few times I always get outdated suggestions/completions from the previous module names.
I'm also worried about this leaking memory.
Since 3.16.0 there have been hooks in the LSP for when files are added/removed: "Events for file operations (create, rename, delete)". Could we use these to signal to the IDE server when something needs invalidating?
A.fn
toRecompile A without letting the server know (start it with the
--editor-mode
flag and recompile module A from the cmdline withpurs compile src/A.purs
)Make a change to module
B
and fast-rebuild through ide, it does not show any errors, and it continues to generate code forB
that assumes the old signature ofA.fn
is still valid, but instead the code fails at runtime.This is a known issue, and I do not have a satisfying solution for the problem at hand. It basically boils down to cache invalidation between the FS and the ide servers internal state. Empirically file watching misses changes, and doesn't interact well with adding and removing files and avoiding it by polling creates too much overhead.
The text was updated successfully, but these errors were encountered: