I found that if I added this to my stack.yaml:
ghc-options:
$locals: -ddump-to-file -ddump-hi
As specified in https://docs.haskellstack.org/en/stable/yaml_configuration/#ghc-options
Then my build would fail to evaluate with:
error: The option `packages."\$locals".package.identifier.name' is used but not defined.
So to fix it, we filter out these special package globs in mkStackPkgSet.
This commit also adds a regression test for that configuration option.
Changes to the haskell.nix code to fix broken tests:
* Add missing `then` to `call-cabal-project-to-nix.nix`.
* Fix default `hsSourceDirs` so that `.` gets included for `.all` component if one of the components does not have a `hsSourceDir` set.
* Fix `haskellNixRoots` so it works when cross compiling to windows.
Improvements to the haskell.nix tests:
* Run haskell.nix tests of nixpkgs 19.03 and 19.09.
* Run haskell.nix tests cross compiled to Windows under Wine (when possible).
* Add nix used as IFD inputs as tests to ensure they are cached.
* Use `haskell-nix.cabal-install` instead of `nixpkgs.cabal-install` in tests.