summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_run
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2021-03-04 18:05:14 +0000
committerRyan Scott <ryan.gl.scott@gmail.com>2021-04-16 15:03:08 -0400
commite13ad2cb1cdc7bb67f582a87af6f3631fd11eef7 (patch)
treed4ef9964dadd912d9e54e342ce9df19684cb6e99 /testsuite/tests/typecheck/should_run
parent232a44de1fa1261316691cdec0a57840b908c942 (diff)
downloadhaskell-wip/T19397-backport.tar.gz
Fixes to dealing with the export of mainwip/T19397-backport
It's surprisingly tricky to deal with 'main' (#19397). This patch does quite bit of refactoring do to it right. Well, more-right anyway! The moving parts are documented in GHC.Tc.Module Note [Dealing with main] Some other oddments: * Rename tcRnExports to rnExports; no typechecking here! * rnExports now uses checkNoErrs rather than failIfErrsM; the former fails only if rnExports itself finds errors * Small improvements to tcTyThingCategory, which ultimately weren't important to the patch, but I've retained as a minor improvement.
Diffstat (limited to 'testsuite/tests/typecheck/should_run')
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M1.stdout2
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M4.stdout2
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M5.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M5.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M6.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T16453M6.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T16453T.hs4
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M0.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M0.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M1.hs1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M1.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M2.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M2.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M3.hs1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M3.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M4.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T19397M4.stdout1
-rw-r--r--testsuite/tests/typecheck/should_run/T19397S.hs7
-rwxr-xr-xtestsuite/tests/typecheck/should_run/all.T7
19 files changed, 38 insertions, 3 deletions
diff --git a/testsuite/tests/typecheck/should_run/T16453M1.stdout b/testsuite/tests/typecheck/should_run/T16453M1.stdout
index e4dfbcd44f..3c86130b45 100644
--- a/testsuite/tests/typecheck/should_run/T16453M1.stdout
+++ b/testsuite/tests/typecheck/should_run/T16453M1.stdout
@@ -1 +1 @@
-T16453T
+T16453T.main
diff --git a/testsuite/tests/typecheck/should_run/T16453M4.stdout b/testsuite/tests/typecheck/should_run/T16453M4.stdout
index e4dfbcd44f..3c86130b45 100644
--- a/testsuite/tests/typecheck/should_run/T16453M4.stdout
+++ b/testsuite/tests/typecheck/should_run/T16453M4.stdout
@@ -1 +1 @@
-T16453T
+T16453T.main
diff --git a/testsuite/tests/typecheck/should_run/T16453M5.hs b/testsuite/tests/typecheck/should_run/T16453M5.hs
new file mode 100644
index 0000000000..a79a33003d
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T16453M5.hs
@@ -0,0 +1,2 @@
+module Main (T16453T.main) where
+import T16453T
diff --git a/testsuite/tests/typecheck/should_run/T16453M5.stdout b/testsuite/tests/typecheck/should_run/T16453M5.stdout
new file mode 100644
index 0000000000..3c86130b45
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T16453M5.stdout
@@ -0,0 +1 @@
+T16453T.main
diff --git a/testsuite/tests/typecheck/should_run/T16453M6.hs b/testsuite/tests/typecheck/should_run/T16453M6.hs
new file mode 100644
index 0000000000..b013e857cd
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T16453M6.hs
@@ -0,0 +1,2 @@
+module Main (T16453T.foo) where
+import T16453T
diff --git a/testsuite/tests/typecheck/should_run/T16453M6.stdout b/testsuite/tests/typecheck/should_run/T16453M6.stdout
new file mode 100644
index 0000000000..72252ffbd0
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T16453M6.stdout
@@ -0,0 +1 @@
+T16453T.foo
diff --git a/testsuite/tests/typecheck/should_run/T16453T.hs b/testsuite/tests/typecheck/should_run/T16453T.hs
index 98ea6255f7..b8dd8923c4 100644
--- a/testsuite/tests/typecheck/should_run/T16453T.hs
+++ b/testsuite/tests/typecheck/should_run/T16453T.hs
@@ -1,2 +1,4 @@
module T16453T where
-main = putStrLn "T16453T"
+main = putStrLn "T16453T.main"
+foo = putStrLn "T16453T.foo"
+
diff --git a/testsuite/tests/typecheck/should_run/T19397M0.hs b/testsuite/tests/typecheck/should_run/T19397M0.hs
new file mode 100644
index 0000000000..fcc08716d5
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M0.hs
@@ -0,0 +1,2 @@
+module Main (main) where
+import T19397S
diff --git a/testsuite/tests/typecheck/should_run/T19397M0.stdout b/testsuite/tests/typecheck/should_run/T19397M0.stdout
new file mode 100644
index 0000000000..4ff016fc0e
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M0.stdout
@@ -0,0 +1 @@
+T19379S-main
diff --git a/testsuite/tests/typecheck/should_run/T19397M1.hs b/testsuite/tests/typecheck/should_run/T19397M1.hs
new file mode 100644
index 0000000000..75413537c8
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M1.hs
@@ -0,0 +1 @@
+import T19397S
diff --git a/testsuite/tests/typecheck/should_run/T19397M1.stdout b/testsuite/tests/typecheck/should_run/T19397M1.stdout
new file mode 100644
index 0000000000..4ff016fc0e
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M1.stdout
@@ -0,0 +1 @@
+T19379S-main
diff --git a/testsuite/tests/typecheck/should_run/T19397M2.hs b/testsuite/tests/typecheck/should_run/T19397M2.hs
new file mode 100644
index 0000000000..71a75a102b
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M2.hs
@@ -0,0 +1,2 @@
+module Main(foo) where
+import T19397S (foo)
diff --git a/testsuite/tests/typecheck/should_run/T19397M2.stdout b/testsuite/tests/typecheck/should_run/T19397M2.stdout
new file mode 100644
index 0000000000..3fe3b9aac6
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M2.stdout
@@ -0,0 +1 @@
+T19379S-foo
diff --git a/testsuite/tests/typecheck/should_run/T19397M3.hs b/testsuite/tests/typecheck/should_run/T19397M3.hs
new file mode 100644
index 0000000000..fd817a8176
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M3.hs
@@ -0,0 +1 @@
+import T19397S (foo)
diff --git a/testsuite/tests/typecheck/should_run/T19397M3.stdout b/testsuite/tests/typecheck/should_run/T19397M3.stdout
new file mode 100644
index 0000000000..3fe3b9aac6
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M3.stdout
@@ -0,0 +1 @@
+T19379S-foo
diff --git a/testsuite/tests/typecheck/should_run/T19397M4.hs b/testsuite/tests/typecheck/should_run/T19397M4.hs
new file mode 100644
index 0000000000..544242c2f5
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M4.hs
@@ -0,0 +1,2 @@
+module Main(module T19397S) where
+import T19397S (foo)
diff --git a/testsuite/tests/typecheck/should_run/T19397M4.stdout b/testsuite/tests/typecheck/should_run/T19397M4.stdout
new file mode 100644
index 0000000000..3fe3b9aac6
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397M4.stdout
@@ -0,0 +1 @@
+T19379S-foo
diff --git a/testsuite/tests/typecheck/should_run/T19397S.hs b/testsuite/tests/typecheck/should_run/T19397S.hs
new file mode 100644
index 0000000000..9316d7d99a
--- /dev/null
+++ b/testsuite/tests/typecheck/should_run/T19397S.hs
@@ -0,0 +1,7 @@
+module T19397S where
+
+main :: IO ()
+main = putStrLn "T19379S-main"
+
+foo :: IO ()
+foo = putStrLn "T19379S-foo"
diff --git a/testsuite/tests/typecheck/should_run/all.T b/testsuite/tests/typecheck/should_run/all.T
index f69cc71352..7468511779 100755
--- a/testsuite/tests/typecheck/should_run/all.T
+++ b/testsuite/tests/typecheck/should_run/all.T
@@ -140,6 +140,8 @@ test('T16453M1', extra_files(['T16453T.hs']), compile_and_run, [''])
test('T16453M2', extra_files(['T16453T.hs']), compile_and_run, [''])
test('T16453M3', extra_files(['T16453T.hs']), compile_and_run, [''])
test('T16453M4', extra_files(['T16453T.hs']), compile_and_run, [''])
+test('T16453M5', extra_files(['T16453T.hs']), compile_and_run, [''])
+test('T16453M6', extra_files(['T16453T.hs']), compile_and_run, ['-main-is foo'])
test('UnliftedNewtypesRun', normal, compile_and_run, [''])
test('UnliftedNewtypesFamilyRun', normal, compile_and_run, [''])
test('UnliftedNewtypesDependentFamilyRun', normal, compile_and_run, [''])
@@ -147,3 +149,8 @@ test('UnliftedNewtypesIdentityRun', normal, compile_and_run, [''])
test('UnliftedNewtypesCoerceRun', normal, compile_and_run, [''])
test('T17104', normal, compile_and_run, [''])
test('T18627', normal, compile_and_run, ['-O']) # Optimisation shows up the bug
+test('T19397M0', extra_files(['T19397S.hs']), compile_and_run, [''])
+test('T19397M1', extra_files(['T19397S.hs']), compile_and_run, [''])
+test('T19397M2', extra_files(['T19397S.hs']), compile_and_run, ['-main-is foo'])
+test('T19397M3', extra_files(['T19397S.hs']), compile_and_run, ['-main-is foo'])
+test('T19397M4', extra_files(['T19397S.hs']), compile_and_run, ['-main-is foo'])