summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-11-27 16:19:24 +0100
committerBen Gamari <ben@smart-cactus.org>2015-11-29 13:22:14 +0100
commit71c0cc1531c3e548e47f435432ed31cb79512607 (patch)
treee82d07d40e1f5f909e11905816a71e59f5107f0a /testsuite/tests/ghci
parent399a5b46591dfbee0499d6afa1bb80ad2fd52598 (diff)
downloadhaskell-71c0cc1531c3e548e47f435432ed31cb79512607.tar.gz
GHCi should not defer typed holes
In the function `tcUserStmt` in compiler/typecheck/TcRnDriver.hs, before going over the different ways ('plans') to lift an expression typed at the prompt into the GHCi monad, `Opt_DeferTypeErrors` is disabled. Here is the accompanying comment: ``` -- Ensure that type errors don't get deferred when type checking the -- naked expression. Deferring type errors here is unhelpful because the -- expression gets evaluated right away anyway. It also would potentially -- emit redundant type-error warnings, one from each plan. ; plan <- unsetGOptM Opt_DeferTypeErrors $ ``` Since `Opt_DeferTypeErrors` implies `Opt_DeferTypedHoles`, `Opt_DeferTypedHoles` should be disabled here as well. This improves the error message for T10248 (it doesn't mention ghciStepIO anymore). This is a partial fix for #10249, and a complete fix for #11130. Depends on D1526 Reviewers: simonpj, austin, bgamari Reviewed By: simonpj Subscribers: simonpj Differential Revision: https://phabricator.haskell.org/D1527 GHC Trac Issues: #10249, #11130
Diffstat (limited to 'testsuite/tests/ghci')
-rw-r--r--testsuite/tests/ghci/scripts/T10248.stderr30
1 files changed, 14 insertions, 16 deletions
diff --git a/testsuite/tests/ghci/scripts/T10248.stderr b/testsuite/tests/ghci/scripts/T10248.stderr
index 59b0b29078..86b8c8d688 100644
--- a/testsuite/tests/ghci/scripts/T10248.stderr
+++ b/testsuite/tests/ghci/scripts/T10248.stderr
@@ -1,16 +1,14 @@
-
-<interactive>:2:10: warning:
- Found hole: _ :: IO ()
- In the second argument of ‘(<$>)’, namely ‘_’
- In the first argument of ‘ghciStepIO :: IO a -> IO a’, namely
- ‘Just <$> _’
- In a stmt of an interactive GHCi command:
- it <- ghciStepIO :: IO a -> IO a (Just <$> _)
-*** Exception: <interactive>:2:10: error:
- Found hole: _ :: IO ()
- In the second argument of ‘(<$>)’, namely ‘_’
- In the first argument of ‘ghciStepIO :: IO a -> IO a’, namely
- ‘Just <$> _’
- In a stmt of an interactive GHCi command:
- it <- ghciStepIO :: IO a -> IO a (Just <$> _)
-(deferred type error)
+
+<interactive>:2:10: error:
+ Found hole: _ :: f a
+ Where: ‘f’ is a rigid type variable bound by
+ the inferred type of it :: Functor f => f (Maybe a)
+ at <interactive>:2:1
+ ‘a’ is a rigid type variable bound by
+ the inferred type of it :: Functor f => f (Maybe a)
+ at <interactive>:2:1
+ In the second argument of ‘(<$>)’, namely ‘_’
+ In the expression: Just <$> _
+ In an equation for ‘it’: it = Just <$> _
+ Relevant bindings include
+ it :: f (Maybe a) (bound at <interactive>:2:1)