Merge pull request #330 from obsidiansystems/func-equal

Fix for function equality issues
This commit is contained in:
John Wiegley 2018-07-31 21:52:47 -04:00 committed by GitHub
commit 52f0f4cef5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 1 deletions

View file

@ -65,6 +65,10 @@ in haskellPackages.developPackage {
else {};
modifier = drv: pkgs.haskell.lib.overrideCabal drv (attrs: {
buildTools = (attrs.buildTools or []) ++ [
pkgs.haskell.packages.${compiler}.cabal-install
];
testHaskellDepends = attrs.testHaskellDepends ++
[ pkgs.nix

View file

@ -219,7 +219,10 @@ isClosureNF _ = False
thunkEq :: MonadThunk (NValue m) (NThunk m) m
=> NThunk m -> NThunk m -> m Bool
thunkEq lt rt = force lt $ \lv -> force rt $ \rv -> valueEq lv rv
thunkEq lt rt = force lt $ \lv -> force rt $ \rv ->
case (lv, rv) of
(NVClosure _ _, NVClosure _ _) -> pure True
_ -> valueEq lv rv
-- | Checks whether two containers are equal, using the given item equality
-- predicate. If there are any item slots that don't match between the two

View file

@ -277,6 +277,15 @@ case_fixed_points_attrsets =
in fix f
|]
case_function_equals1 =
constantEqualText "true" "{f = x: x;} == {f = x: x;}"
case_function_equals2 =
constantEqualText "true" "[(x: x)] == [(x: x)]"
case_function_equals3 =
constantEqualText "false" "(x: x) == (x: x)"
-- jww (2018-05-02): This constantly changes!
-- case_placeholder =
-- constantEqualText