Closed
Description
Your environment
$ haskell-language-server-wrapper --probe-tools
haskell-language-server version: 0.6.0.0 (GHC: 8.10.1) (PATH: /Users/xsebek/.ghcup/bin/haskell-language-server-wrapper-0.6.0) (GIT hash: 372a12e797069dc3ac4fa33dcaabe3b992999d7c)
Tool versions found on the $PATH
cabal: 3.2.0.0
stack: Not found
ghc: 8.10.2
Which lsp-client do you use: VS Code
Describe your project: Simple cabal init
with added dependency on optics
and changed MainLib.hs
:
module MyLib (someFunc) where
import Optics
-- >>> (\(a,b,c) -> (succ a,b,c)) (1,2,3)
-- (2,2,3)
-- >>> (_1 %~ succ) (1, 2, 3)
--
-- >>> someFunc
--
someFunc :: (Int, Int, Int)
someFunc = (_1 %~ succ) (1, 2, 3)
Contents of hie.yaml
:
cradle:
cabal:
- path: "./MyLib.hs"
component: "MyLib"
Steps to reproduce
Run eval action on expression with optic or function which contains them, for example:
-- >>> (\(a,b,c) -> (succ a,b,c)) (1,2,3)
-- (2,2,3)
-- >>> (_1 %~ succ) (1, 2, 3)
--
-- >>> someFunc
--
someFunc :: (Int, Int, Int)
someFunc = (_1 %~ succ) (1, 2, 3)
Expected behaviour
Should evaluate the action as if _1 %~ succ
was \(a,b,c) -> (succ a,b,c)
Actual behaviour
The eval crashes the server:
2020-12-10 11:51:15.075881 [ThreadId 268] - finish: runEvalCmd.ghcSession (took 0.00s)
2020-12-10 11:51:15.077079 [ThreadId 270] - finish: runEvalCmd.getModSummary (took 0.00s)
haskell-language-server-wrapper: callProcess: /Users/xsebek/.ghcup/bin/haskell-language-server-8.10.2 "--lsp" (exit -11): failed
[Info - 11:51:16 AM] Connection to server got closed. Server will restart.
[Error - 11:51:16 AM] Request workspace/executeCommand failed.
Error: Connection got disposed.
The same thing happens with evaluating the lens directly.
Include debug information
Execute in the root of your project the command haskell-language-server --debug .
and paste the logs here:
Debug output:
$ haskell-language-server-wrapper --debug MyLib.hs
Found "$SOME_TMP/hie.yaml" for "$SOME_TMP/a"
Module "$SOME_TMP/a" is loaded by Cradle: Cradle {cradleRootDir = "$SOME_TMP", cradleOptsProg = CradleAction: Cabal}
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 0.6.0.0, Git revision 372a12e797069dc3ac4fa33dcaabe3b992999d7c (dirty) x86_64 ghc-8.10.1
Current directory: $SOME_TMP
Operating system: darwin
Arguments: ["--debug","MyLib.hs"]
Cradle directory: $SOME_TMP
Cradle type: Cabal
Tool versions found on the $PATH
cabal: 3.2.0.0
stack: Not found
ghc: 8.10.2
Consulting the cradle to get project GHC version...
Project GHC version: 8.10.2
haskell-language-server exe candidates: ["haskell-language-server-8.10.2","haskell-language-server-8.10","haskell-language-server"]
Launching haskell-language-server exe at:/Users/xsebek/.ghcup/bin/haskell-language-server-8.10.2
haskell-language-server version: 0.6.0.0 (GHC: 8.10.2) (PATH: /Users/xsebek/.ghcup/bin/haskell-language-server-8.10.2~0.6.0) (GIT hash: 372a12e797069dc3ac4fa33dcaabe3b992999d7c)
(haskell-language-server)Ghcide setup tester in $SOME_TMP.
Report bugs at https://github.com/haskell/haskell-language-server/issues
Tool versions found on the $PATH
cabal: 3.2.0.0
stack: Not found
ghc: 8.10.2
Step 1/4: Finding files to test in $SOME_TMP
Found 1 files
Step 2/4: Looking for hie.yaml files that control setup
Found 1 cradle
Step 3/4: Initializing the IDE
Step 4/4: Type checking the files
[INFO] Consulting the cradle for "MyLib.hs"
Output from setting up the cradle Cradle {cradleRootDir = "$SOME_TMP", cradleOptsProg = CradleAction: Cabal}
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
> - tmp-0.1.0.0 (lib:MyLib) (configuration changed)
> Configuring library 'MyLib' for tmp-0.1.0.0..
> Warning: The 'license-file' field refers to the file 'LICENSE' which does not
> exist.
> Preprocessing library 'MyLib' for tmp-0.1.0.0..
[INFO] Using interface files cache dir: /Users/xsebek/.cache/ghcide/tmp-0.1.0.0-inplace-MyLib-6663260c9a6116330b14b409a83fcf0dfa27cc29
[INFO] Making new HscEnv[tmp-0.1.0.0-inplace-MyLib]
[INFO] finish: User TypeCheck (took 0.17s)Completed (1 file worked, 0 files failed)
Paste the logs from the lsp-client, e.g. for VS Code
LSP logs:
2020-12-10 12:12:52.720306 [ThreadId 17] - Opened text document: file://$SOME_TMP/MyLib.hs
2020-12-10 12:12:52.733715 [ThreadId 1956] - finish: CodeAction (took 0.01s)
2020-12-10 12:12:52.737882 [ThreadId 1974] - finish: CodeAction:PackageExports (took 0.00s)
2020-12-10 12:12:52.740907 [ThreadId 1975] - finish: importLens (took 0.00s)
2020-12-10 12:12:52.742561 [ThreadId 1977] - finish: retrie (took 0.00s)
2020-12-10 12:12:52.744837 [ThreadId 1979] - finish: tactic (took 0.00s)
2020-12-10 12:12:52.74625 [ThreadId 1985] - finish: tactic (took 0.00s)
2020-12-10 12:12:52.74646 [ThreadId 1986] - finish: tactic (took 0.00s)
2020-12-10 12:12:52.935338 [ThreadId 1991] - Plugin.makeCodeLens (ideLogger)
2020-12-10 12:12:52.937463 [ThreadId 1992] - finish: codeLens (took 0.00s)
2020-12-10 12:12:52.939431 [ThreadId 1997] - finish: (took 0.00s)
2020-12-10 12:12:52.94095 [ThreadId 1998] - finish: ModuleName.ghcSession (took 0.00s)
2020-12-10 12:12:52.942255 [ThreadId 2000] - finish: ModuleName.GetParsedModule (took 0.00s)
2020-12-10 12:12:58.113564 [ThreadId 2007] - finish: runEvalCmd.ghcSession (took 0.00s)
2020-12-10 12:12:58.115273 [ThreadId 2009] - finish: runEvalCmd.getModSummary (took 0.00s)
haskell-language-server-wrapper: callProcess: /Users/xsebek/.ghcup/bin/haskell-language-server-8.10.2 "--lsp" (exit -11): failed
[Info - 12:13:00 PM] Connection to server got closed. Server will restart.
[Error - 12:13:00 PM] Request workspace/executeCommand failed.
Error: Connection got disposed.
at Object.dispose (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:90964)
at Object.dispose (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:74243)
at D.handleConnectionClosed (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:74417)
at D.handleConnectionClosed (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:247:9685)
at t (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:72568)
at n.invoke (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:233221)
at i.fire (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:233951)
at G (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:82879)
at n.invoke (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:233221)
at i.fire (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:233951)
at u.fireClose (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:252684)
at Socket.<anonymous> (/Users/xsebek/.vscode/extensions/haskell.haskell-1.2.0/dist/extension.js:1:253441)
at Socket.emit (events.js:228:7)
at Pipe.<anonymous> (net.js:664:12)
Found "$SOME_TMP/hie.yaml" for "$SOME_TMP/a"
Module "$SOME_TMP/a" is loaded by Cradle: Cradle {cradleRootDir = "$SOME_TMP", cradleOptsProg = CradleAction: Cabal}