summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorSean D Gillespie <sean@mistersg.net>2018-06-17 11:22:20 -0400
committerBen Gamari <ben@smart-cactus.org>2018-06-17 12:41:17 -0400
commitdf0f148feae4c3b9653260edff843d561d6d5918 (patch)
tree3ad522f40192f0f25d7a10ee1ac1a9623e8d0e95 /testsuite
parentccd8ce405db89142932daea3fdace8814b110798 (diff)
downloadhaskell-df0f148feae4c3b9653260edff843d561d6d5918.tar.gz
Improve error message when importing an unusable package
If a module cannot be found because it is ignored or from an unusable package, report this to the user and the reason it is unusable. Currently, GHC displays the standard "Cannot find module error". For example: ``` <no location info>: error: Could not find module ‘Control.Monad.Random’ Perhaps you meant Control.Monad.Reader (from mtl-2.2.2) Control.Monad.Cont (from mtl-2.2.2) Control.Monad.Error (from mtl-2.2.2) ``` GHC does, however, indicate unusable/ignored packages with the -v flag: ``` package MonadRandom-0.5.1-1421RgpXdhC8e8UI7D3emA is unusable due to missing dependencies: fail-4.9.0.0-BAHmj60kS5K7NVhhKpm9J5 ``` With this change, I took that message and added it to the output of the "Cannot find module" message. Reviewers: bgamari, dfeuer Reviewed By: bgamari Subscribers: Phyx, dfeuer, rwbarton, thomie, carter GHC Trac Issues: #4806 Differential Revision: https://phabricator.haskell.org/D4783
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/ghci/should_fail/T15055.stderr4
-rw-r--r--testsuite/tests/package/T4806.hs1
-rw-r--r--testsuite/tests/package/T4806.stderr6
-rw-r--r--testsuite/tests/package/T4806a.hs1
-rw-r--r--testsuite/tests/package/T4806a.stderr7
-rw-r--r--testsuite/tests/package/all.T3
-rw-r--r--testsuite/tests/package/package01e.stderr4
-rw-r--r--testsuite/tests/package/package06e.stderr8
-rw-r--r--testsuite/tests/package/package07e.stderr6
-rw-r--r--testsuite/tests/package/package08e.stderr6
-rw-r--r--testsuite/tests/plugins/T11244.stderr2
11 files changed, 33 insertions, 15 deletions
diff --git a/testsuite/tests/ghci/should_fail/T15055.stderr b/testsuite/tests/ghci/should_fail/T15055.stderr
index daba7c7e53..fbf540edfd 100644
--- a/testsuite/tests/ghci/should_fail/T15055.stderr
+++ b/testsuite/tests/ghci/should_fail/T15055.stderr
@@ -1,6 +1,6 @@
-<no location info>:
- Could not find module ‘GHC’
+<no location info>: error:
+ Could not load module ‘GHC’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
diff --git a/testsuite/tests/package/T4806.hs b/testsuite/tests/package/T4806.hs
new file mode 100644
index 0000000000..781cfef1ac
--- /dev/null
+++ b/testsuite/tests/package/T4806.hs
@@ -0,0 +1 @@
+import Data.Map
diff --git a/testsuite/tests/package/T4806.stderr b/testsuite/tests/package/T4806.stderr
new file mode 100644
index 0000000000..6b332fd32b
--- /dev/null
+++ b/testsuite/tests/package/T4806.stderr
@@ -0,0 +1,6 @@
+
+T4806.hs:1:1: error:
+ Could not load module ‘Data.Map’
+ It is a member of the package ‘containers-0.5.11.0’
+ which is ignored due to an -ignore-package flag
+ Use -v to see a list of the files searched for.
diff --git a/testsuite/tests/package/T4806a.hs b/testsuite/tests/package/T4806a.hs
new file mode 100644
index 0000000000..781cfef1ac
--- /dev/null
+++ b/testsuite/tests/package/T4806a.hs
@@ -0,0 +1 @@
+import Data.Map
diff --git a/testsuite/tests/package/T4806a.stderr b/testsuite/tests/package/T4806a.stderr
new file mode 100644
index 0000000000..36cbb59fbe
--- /dev/null
+++ b/testsuite/tests/package/T4806a.stderr
@@ -0,0 +1,7 @@
+
+T4806a.hs:1:1: error:
+ Could not load module ‘Data.Map’
+ It is a member of the package ‘containers-0.5.11.0’
+ which is unusable because the -ignore-package flag was used to ignore at least one of its dependencies:
+ deepseq-1.4.4.0
+ Use -v to see a list of the files searched for.
diff --git a/testsuite/tests/package/all.T b/testsuite/tests/package/all.T
index 129ae8540c..670550e41d 100644
--- a/testsuite/tests/package/all.T
+++ b/testsuite/tests/package/all.T
@@ -17,3 +17,6 @@ test('package07e', normalise_version('ghc'), compile_fail, [incr_ghc + inc_ghc +
test('package08e', normalise_version('ghc'), compile_fail, [incr_ghc + hide_ghc])
test('package09e', normal, compile_fail, ['-package "containers (Data.Map as M, Data.Set as M)"'])
test('package10', normal, compile, ['-hide-all-packages -package "ghc (UniqFM as Prelude)" '])
+
+test('T4806', normal, compile_fail, ['-ignore-package containers'])
+test('T4806a', normal, compile_fail, ['-ignore-package deepseq']) \ No newline at end of file
diff --git a/testsuite/tests/package/package01e.stderr b/testsuite/tests/package/package01e.stderr
index e4af6b1227..7ae545fe6f 100644
--- a/testsuite/tests/package/package01e.stderr
+++ b/testsuite/tests/package/package01e.stderr
@@ -1,13 +1,13 @@
package01e.hs:2:1: error:
- Could not find module ‘Data.Map’
+ Could not load module ‘Data.Map’
It is a member of the hidden package ‘containers-0.5.11.0’.
You can run ‘:set -package containers’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package01e.hs:3:1: error:
- Could not find module ‘Data.IntMap’
+ Could not load module ‘Data.IntMap’
It is a member of the hidden package ‘containers-0.5.11.0’.
You can run ‘:set -package containers’ to expose it.
(Note: this unloads all the modules in the current scope.)
diff --git a/testsuite/tests/package/package06e.stderr b/testsuite/tests/package/package06e.stderr
index 1bdbb162b0..40673b844c 100644
--- a/testsuite/tests/package/package06e.stderr
+++ b/testsuite/tests/package/package06e.stderr
@@ -1,14 +1,14 @@
package06e.hs:2:1: error:
- Could not find module ‘HsTypes’
- It is a member of the hidden package ‘ghc-8.1’.
+ Could not load module ‘HsTypes’
+ It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package06e.hs:3:1: error:
- Could not find module ‘UniqFM’
- It is a member of the hidden package ‘ghc-8.1’.
+ Could not load module ‘UniqFM’
+ It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
diff --git a/testsuite/tests/package/package07e.stderr b/testsuite/tests/package/package07e.stderr
index 9bd53da52c..132268cb64 100644
--- a/testsuite/tests/package/package07e.stderr
+++ b/testsuite/tests/package/package07e.stderr
@@ -5,21 +5,21 @@ package07e.hs:2:1: error:
Use -v to see a list of the files searched for.
package07e.hs:3:1: error:
- Could not find module ‘HsTypes’
+ Could not load module ‘HsTypes’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package07e.hs:4:1: error:
- Could not find module ‘HsUtils’
+ Could not load module ‘HsUtils’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package07e.hs:5:1: error:
- Could not find module ‘UniqFM’
+ Could not load module ‘UniqFM’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
diff --git a/testsuite/tests/package/package08e.stderr b/testsuite/tests/package/package08e.stderr
index 0e075ddda9..31b6e762e7 100644
--- a/testsuite/tests/package/package08e.stderr
+++ b/testsuite/tests/package/package08e.stderr
@@ -5,21 +5,21 @@ package08e.hs:2:1: error:
Use -v to see a list of the files searched for.
package08e.hs:3:1: error:
- Could not find module ‘HsTypes’
+ Could not load module ‘HsTypes’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package08e.hs:4:1: error:
- Could not find module ‘HsUtils’
+ Could not load module ‘HsUtils’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
package08e.hs:5:1: error:
- Could not find module ‘UniqFM’
+ Could not load module ‘UniqFM’
It is a member of the hidden package ‘ghc-8.5’.
You can run ‘:set -package ghc’ to expose it.
(Note: this unloads all the modules in the current scope.)
diff --git a/testsuite/tests/plugins/T11244.stderr b/testsuite/tests/plugins/T11244.stderr
index b5711445b8..0c3b3cf781 100644
--- a/testsuite/tests/plugins/T11244.stderr
+++ b/testsuite/tests/plugins/T11244.stderr
@@ -1,4 +1,4 @@
-<command line>: Could not find module ‘RuleDefiningPlugin’
+<command line>: Could not load module ‘RuleDefiningPlugin’
It is a member of the hidden package ‘rule-defining-plugin-0.1’.
You can run ‘:set -package rule-defining-plugin’ to expose it.
(Note: this unloads all the modules in the current scope.)