From 475dd93efa5158a0f9516f6819a24edfc30c1a76 Mon Sep 17 00:00:00 2001 From: David Terei <code@davidterei.com> Date: Wed, 12 Nov 2014 16:11:39 -0800 Subject: [PATCH] Add `--fwarn-trustworthy-safe` to `-Wall` Update submodule haskell2010, haskell98, hoop, hpc and stm to fix new warnings. --- compiler/main/DynFlags.hs | 3 ++- libraries/haskell2010 | 2 +- libraries/haskell98 | 2 +- libraries/hoopl | 2 +- libraries/hpc | 2 +- libraries/stm | 2 +- mk/validate-settings.mk | 7 +++++++ .../tests/safeHaskell/safeInfered/TrustworthySafe03.hs | 10 ++++++++++ .../safeHaskell/safeInfered/TrustworthySafe03.stderr | 3 +++ testsuite/tests/safeHaskell/safeInfered/all.T | 1 + 10 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs create mode 100644 testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 043174f3b025..70fc6d390d3f 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -3154,7 +3154,8 @@ minusWallOpts Opt_WarnMissingSigs, Opt_WarnHiShadows, Opt_WarnOrphans, - Opt_WarnUnusedDoBind + Opt_WarnUnusedDoBind, + Opt_WarnTrustworthySafe ] enableGlasgowExts :: DynP () diff --git a/libraries/haskell2010 b/libraries/haskell2010 index 425df1d9ea7a..a21abff3e385 160000 --- a/libraries/haskell2010 +++ b/libraries/haskell2010 @@ -1 +1 @@ -Subproject commit 425df1d9ea7adcf823bbb5426528bd80eb2b820e +Subproject commit a21abff3e385a85e1353aa720516e148865710a1 diff --git a/libraries/haskell98 b/libraries/haskell98 index 401283a98a81..cf064d954c51 160000 --- a/libraries/haskell98 +++ b/libraries/haskell98 @@ -1 +1 @@ -Subproject commit 401283a98a818f66f856939f939562de5c4a2b47 +Subproject commit cf064d954c511a2edddb5a55a1984d57ce36c407 diff --git a/libraries/hoopl b/libraries/hoopl index 7f06b16ba3a4..a90a3af92be4 160000 --- a/libraries/hoopl +++ b/libraries/hoopl @@ -1 +1 @@ -Subproject commit 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f +Subproject commit a90a3af92be400af8912555bce21b041a1c48ad4 diff --git a/libraries/hpc b/libraries/hpc index d430be4664aa..60e7bbfeea8b 160000 --- a/libraries/hpc +++ b/libraries/hpc @@ -1 +1 @@ -Subproject commit d430be4664aac337cd0e49dd6b69e818f21cde6b +Subproject commit 60e7bbfeea8ba54688b8f432f0f337b275f06c58 diff --git a/libraries/stm b/libraries/stm index 40fd6d88f75c..6b63e91b2b0b 160000 --- a/libraries/stm +++ b/libraries/stm @@ -1 +1 @@ -Subproject commit 40fd6d88f75c31b66419ab93f436225c9403846c +Subproject commit 6b63e91b2b0b7d7b4bef654117da62c22cac34da diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk index 52aa6488935e..150aec3323e2 100644 --- a/mk/validate-settings.mk +++ b/mk/validate-settings.mk @@ -163,6 +163,13 @@ libraries/dph/dph-lifted-common-install_EXTRA_HC_OPTS += -Wwarn # We need to turn of deprecated warnings for SafeHaskell transition libraries/array_dist-install_EXTRA_HC_OPTS += -fno-warn-warnings-deprecations +# Turn of trustworthy-safe warning +libraries/base_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe +libraries/ghc-prim_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe +libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe +libraries/process_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe +libraries/unix_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe + # Temporarely disable inline rule shadowing warning libraries/bytestring_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing libraries/template-haskell_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs new file mode 100644 index 000000000000..12be9b174cda --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE Trustworthy #-} +{-# OPTIONS_GHC -Wall #-} + +-- | This module is marked trustworthy but should be inferable as -XSafe. +-- Warning enabled through `-W`. +module TrustworthySafe03 where + +g :: Int +g = 1 + diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr new file mode 100644 index 000000000000..9505d06031d2 --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr @@ -0,0 +1,3 @@ + +TrustworthySafe03.hs:1:14: Warning: + ‘TrustworthySafe03’ is marked as Trustworthy but has been inferred as safe! diff --git a/testsuite/tests/safeHaskell/safeInfered/all.T b/testsuite/tests/safeHaskell/safeInfered/all.T index 89062cd174d6..12e80a7fde69 100644 --- a/testsuite/tests/safeHaskell/safeInfered/all.T +++ b/testsuite/tests/safeHaskell/safeInfered/all.T @@ -76,6 +76,7 @@ test('Mixed03', normal, compile_fail, ['']) # Trustworthy Safe modules test('TrustworthySafe01', normal, compile, ['']) test('TrustworthySafe02', normal, compile, ['']) +test('TrustworthySafe03', normal, compile, ['']) test('TrustworthySafe04', normal, compile, ['']) # Check -fwarn-unsafe works -- GitLab