diff options
Diffstat (limited to 'testsuite/tests/deSugar/should_compile/T3263-2.hs')
-rw-r--r-- | testsuite/tests/deSugar/should_compile/T3263-2.hs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testsuite/tests/deSugar/should_compile/T3263-2.hs b/testsuite/tests/deSugar/should_compile/T3263-2.hs new file mode 100644 index 0000000000..71288062c5 --- /dev/null +++ b/testsuite/tests/deSugar/should_compile/T3263-2.hs @@ -0,0 +1,38 @@ +-- Trac #3263. New kind of warning on monadic bindings that discard a monadic result + +module T3263 where + +import Control.Monad.Fix + +-- No warning +t1 :: Monad m => m Int +t1 = do + return 10 + +-- No warning +t2 :: Monad m => m (m Int) +t2 = return (return 10) + +-- No warning +t3 :: Monad m => m (m Int) +t3 = do + return 10 + return (return 10) + +-- Warning +t4 :: forall m. Monad m => m Int +t4 = do + return (return 10 :: m Int) + return 10 + +-- No warning +t5 :: forall m. Monad m => m Int +t5 = do + _ <- return (return 10 :: m Int) + return 10 + +-- Warning +t6 :: forall m. MonadFix m => m Int +t6 = mdo + return (return 10 :: m Int) + return 10
\ No newline at end of file |