Description
For context, in rules_haskell we output compilation options as described in the hie-bios documentation, and encountered a case where two different paths to the same directory (because of symlinks) are not equivalent.
See the following repro: https://github.com/ylecornec/hls-symlink-repro.
The repro was made on NixOS but we encountered the same thing on Ubuntu and Windows as well.
In this example ,haskell-language-server
is setup using a hie-bios
script which outputs the following flags:
-isubdir_alias
Main.hs
subdir/Lib.hs
where subdir_alias
is a symbolic link to subdir
.
Running the following command:
haskell-language-server-wrapper Main.hs
fails with error:
Message: Variable not in scope: val
whereas using either subdir
or subdir_alias
in both places works fine.
(running ghci $(./hie-bios | tr '\n' ' ')
as indicated in hie-bios documentation also seems to work fine)
Versions:
This behavior seems present since haskell-language-server
version 1.6
as the following commands fail:
nix-shell shell_1_9_0_0.nix --run "haskell-language-server-wrapper Main.hs"
nix-shell shell_1_6_1_1.nix --run "haskell-language-server-wrapper Main.hs"
While this one succeeds:
nix-shell shell_1_5_0_1.nix --run "haskell-language-server-wrapper Main.hs"