diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 043174f3b0259b0ad7b664157bade949bd9a8baf..70fc6d390d3fcf460d4b4f4223e035e0274cd28d 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 425df1d9ea7adcf823bbb5426528bd80eb2b820e..a21abff3e385a85e1353aa720516e148865710a1 160000 --- a/libraries/haskell2010 +++ b/libraries/haskell2010 @@ -1 +1 @@ -Subproject commit 425df1d9ea7adcf823bbb5426528bd80eb2b820e +Subproject commit a21abff3e385a85e1353aa720516e148865710a1 diff --git a/libraries/haskell98 b/libraries/haskell98 index 401283a98a818f66f856939f939562de5c4a2b47..cf064d954c511a2edddb5a55a1984d57ce36c407 160000 --- a/libraries/haskell98 +++ b/libraries/haskell98 @@ -1 +1 @@ -Subproject commit 401283a98a818f66f856939f939562de5c4a2b47 +Subproject commit cf064d954c511a2edddb5a55a1984d57ce36c407 diff --git a/libraries/hoopl b/libraries/hoopl index 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f..a90a3af92be400af8912555bce21b041a1c48ad4 160000 --- a/libraries/hoopl +++ b/libraries/hoopl @@ -1 +1 @@ -Subproject commit 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f +Subproject commit a90a3af92be400af8912555bce21b041a1c48ad4 diff --git a/libraries/hpc b/libraries/hpc index d430be4664aac337cd0e49dd6b69e818f21cde6b..60e7bbfeea8ba54688b8f432f0f337b275f06c58 160000 --- a/libraries/hpc +++ b/libraries/hpc @@ -1 +1 @@ -Subproject commit d430be4664aac337cd0e49dd6b69e818f21cde6b +Subproject commit 60e7bbfeea8ba54688b8f432f0f337b275f06c58 diff --git a/libraries/stm b/libraries/stm index 40fd6d88f75c31b66419ab93f436225c9403846c..6b63e91b2b0b7d7b4bef654117da62c22cac34da 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 52aa6488935e5e15f6de4776a2f70b476e258d29..150aec3323e2fe59c2e1c1479b9d50a9164c41a0 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 0000000000000000000000000000000000000000..12be9b174cdacd5fc4825f015703542150ec5d76 --- /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 0000000000000000000000000000000000000000..9505d06031d205b5e90b25bd3cf4338c13cc4f32 --- /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 89062cd174d6877d521d93164832a50fd5b3f44d..12e80a7fde690f93849f95f81c555dca0312a74d 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