summaryrefslogtreecommitdiff
path: root/testsuite/.gitignore
diff options
context:
space:
mode:
authorEric Seidel <gridaphobe@gmail.com>2015-12-12 16:53:50 +0100
committerBen Gamari <ben@smart-cactus.org>2015-12-12 18:39:22 +0100
commit3ec8288a18d57fb856e257905897daae237a1d5d (patch)
tree089c791781000e8685cac8f70c53e12a971288b7 /testsuite/.gitignore
parent1883afb2eee88c828adf6aa8014bab64dd6e8096 (diff)
downloadhaskell-3ec8288a18d57fb856e257905897daae237a1d5d.tar.gz
Rework the Implicit CallStack solver to handle local lets.
We can't just solve CallStack constraints indiscriminately when they occur in the RHS of a let-binder. The top-level given CallStack (if any) will not be in scope, so I've re-worked the CallStack solver as follows: 1. CallStacks are treated like regular IPs unless one of the following two rules apply. 2. In a function call, we push the call-site onto a NEW wanted CallStack, which GHC will solve as a regular IP (either directly from a given, or by quantifying over it in a local let). 3. If, after the constraint solver is done, any wanted CallStacks remain, we default them to the empty CallStack. This rule exists mainly to clean up after rule 2 in a top-level binder with no given CallStack. In rule (2) we have to be careful to emit the new wanted with an IPOccOrigin instead of an OccurrenceOf origin, so rule (2) doesn't fire again. This is a bit shady but I've updated the Note to explain the trick. Test Plan: validate Reviewers: simonpj, austin, bgamari, hvr Reviewed By: simonpj, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1422 GHC Trac Issues: #10845
Diffstat (limited to 'testsuite/.gitignore')
-rw-r--r--testsuite/.gitignore1
1 files changed, 1 insertions, 0 deletions
diff --git a/testsuite/.gitignore b/testsuite/.gitignore
index 0bb80823f6..ef3e720e24 100644
--- a/testsuite/.gitignore
+++ b/testsuite/.gitignore
@@ -1551,6 +1551,7 @@ mk/ghcconfig*_test___spaces_ghc*.exe.mk
/tests/typecheck/should_run/T9497c-run
/tests/typecheck/should_run/T9858c
/tests/typecheck/should_run/T9858d
+/tests/typecheck/should_run/T10845
/tests/typecheck/should_run/TcCoercible
/tests/typecheck/should_run/TcNullaryTC
/tests/typecheck/should_run/TcTypeNatSimpleRun