diff options
author | Bartosz Nitka <niteria@gmail.com> | 2016-04-26 05:58:24 -0700 |
---|---|---|
committer | Bartosz Nitka <niteria@gmail.com> | 2016-04-26 06:40:04 -0700 |
commit | c9bcaf3165586ac214fa694e61c55eb45eb131ab (patch) | |
tree | d01bdfd94886ff368517a6057e2dcf77ce8614cc /testsuite/tests/typecheck/should_fail/T7734.stderr | |
parent | fd5212fdc26686a85085333af57903a59be809c6 (diff) | |
download | haskell-c9bcaf3165586ac214fa694e61c55eb45eb131ab.tar.gz |
Kill varSetElemsWellScoped in quantifyTyVars
varSetElemsWellScoped introduces unnecessary non-determinism in
inferred type signatures.
Removing this instance required changing the representation of
TcDepVars to use deterministic sets.
This is the last occurence of varSetElemsWellScoped, allowing me to
finally remove it.
Test Plan:
./validate
I will update the expected outputs when commiting, some reordering
of type variables in types is expected.
Reviewers: goldfire, simonpj, austin, bgamari
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D2135
GHC Trac Issues: #4012
Diffstat (limited to 'testsuite/tests/typecheck/should_fail/T7734.stderr')
-rw-r--r-- | testsuite/tests/typecheck/should_fail/T7734.stderr | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/testsuite/tests/typecheck/should_fail/T7734.stderr b/testsuite/tests/typecheck/should_fail/T7734.stderr index 1b1716bfc5..8553fdb888 100644 --- a/testsuite/tests/typecheck/should_fail/T7734.stderr +++ b/testsuite/tests/typecheck/should_fail/T7734.stderr @@ -1,18 +1,18 @@ T7734.hs:4:13: error: - • Occurs check: cannot construct the infinite type: t1 ~ t1 -> t2 + • Occurs check: cannot construct the infinite type: t2 ~ t2 -> t1 • In the first argument of ‘x’, namely ‘x’ In the expression: x x In an equation for ‘f’: x `f` y = x x • Relevant bindings include - x :: t1 -> t2 (bound at T7734.hs:4:1) - f :: (t1 -> t2) -> t -> t2 (bound at T7734.hs:4:3) + x :: t2 -> t1 (bound at T7734.hs:4:1) + f :: (t2 -> t1) -> t -> t1 (bound at T7734.hs:4:3) T7734.hs:5:13: error: - • Occurs check: cannot construct the infinite type: t1 ~ t1 -> t2 + • Occurs check: cannot construct the infinite type: t2 ~ t2 -> t1 • In the first argument of ‘x’, namely ‘x’ In the expression: x x In an equation for ‘&’: (&) x y = x x • Relevant bindings include - x :: t1 -> t2 (bound at T7734.hs:5:5) - (&) :: (t1 -> t2) -> t -> t2 (bound at T7734.hs:5:1) + x :: t2 -> t1 (bound at T7734.hs:5:5) + (&) :: (t2 -> t1) -> t -> t1 (bound at T7734.hs:5:1) |