From 4356dacb4a2ae29dfbd7126b25b72d89bb9db1b0 Mon Sep 17 00:00:00 2001 From: David Kraeutmann Date: Tue, 8 Sep 2015 11:35:33 -0500 Subject: Forbid annotations when Safe Haskell safe mode is enabled. For now, this fails compliation immediately with an error. If desired, this can be a warning that annotations in Safe Haskell are ignored. Signed-off-by: David Kraeutmann Reviewed By: goldfire, austin Differential Revision: https://phabricator.haskell.org/D1226 GHC Trac Issues: #10826 --- testsuite/tests/annotations/should_fail/T10826.hs | 7 +++++++ testsuite/tests/annotations/should_fail/T10826.stderr | 6 ++++++ testsuite/tests/annotations/should_fail/all.T | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 testsuite/tests/annotations/should_fail/T10826.hs create mode 100644 testsuite/tests/annotations/should_fail/T10826.stderr (limited to 'testsuite/tests/annotations') diff --git a/testsuite/tests/annotations/should_fail/T10826.hs b/testsuite/tests/annotations/should_fail/T10826.hs new file mode 100644 index 0000000000..cddf33ca6f --- /dev/null +++ b/testsuite/tests/annotations/should_fail/T10826.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE Safe #-} +module Test (hook) where + +import System.IO.Unsafe + +{-# ANN hook (unsafePerformIO (putStrLn "Woops.")) #-} +hook = undefined diff --git a/testsuite/tests/annotations/should_fail/T10826.stderr b/testsuite/tests/annotations/should_fail/T10826.stderr new file mode 100644 index 0000000000..0e2bed5d8b --- /dev/null +++ b/testsuite/tests/annotations/should_fail/T10826.stderr @@ -0,0 +1,6 @@ + +T10826.hs:6:1: error: + Annotations are not compatible with Safe Haskell. + See https://ghc.haskell.org/trac/ghc/ticket/10826 + In the annotation: + {-# ANN hook (unsafePerformIO (putStrLn "Woops.")) #-} diff --git a/testsuite/tests/annotations/should_fail/all.T b/testsuite/tests/annotations/should_fail/all.T index 21eaa765c3..0b10d8394a 100644 --- a/testsuite/tests/annotations/should_fail/all.T +++ b/testsuite/tests/annotations/should_fail/all.T @@ -18,7 +18,7 @@ test('annfail10', req_interp, compile_fail, ['']) test('annfail11', normal, compile_fail, ['']) test('annfail12', req_interp, compile_fail, ['-v0']) test('annfail13', normal, compile_fail, ['']) - +test('T10826', normal, compile_fail, ['']) """" Helpful things to C+P: -- cgit v1.2.1