summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Gogolewski <krzysztof.gogolewski@tweag.io>2021-02-03 04:48:18 +0100
committerKrzysztof Gogolewski <krzysztof.gogolewski@tweag.io>2021-02-06 16:13:47 +0100
commit441700f708995e261e086071385592f7654e4adb (patch)
treeaabe03314669ab498046f840dfc5cd5e89f2645a
parent3da472f0e78fe5f1068be0cc2b1c0762532da9f9 (diff)
downloadhaskell-wip/ppr-arr.tar.gz
Fix pretty-printing of invisible arguments for FUN 'Many (#19310)wip/ppr-arr
-rw-r--r--compiler/GHC/Iface/Type.hs6
-rw-r--r--testsuite/tests/ghci/scripts/T19310.script4
-rw-r--r--testsuite/tests/ghci/scripts/T19310.stdout3
-rwxr-xr-xtestsuite/tests/ghci/scripts/all.T1
4 files changed, 12 insertions, 2 deletions
diff --git a/compiler/GHC/Iface/Type.hs b/compiler/GHC/Iface/Type.hs
index 4cb9178f98..67f27410e8 100644
--- a/compiler/GHC/Iface/Type.hs
+++ b/compiler/GHC/Iface/Type.hs
@@ -1419,8 +1419,10 @@ pprTyTcApp ctxt_prec tc tys =
, IA_Arg (IfaceTyConApp rep IA_Nil) Required args <- tys
, rep `ifaceTyConHasKey` manyDataConKey
, print_type_abbreviations -- See Note [Printing type abbreviations]
- -> pprIfacePrefixApp ctxt_prec (parens arrow) (map (ppr_ty appPrec) $
- appArgsIfaceTypes $ stripInvisArgs (PrintExplicitKinds print_kinds) args)
+ -> pprIfacePrefixApp ctxt_prec (parens arrow) (map (ppr_app_arg appPrec) $
+ appArgsIfaceTypesArgFlags $ stripInvisArgs (PrintExplicitKinds print_kinds) args)
+ -- Use appArgsIfaceTypesArgFlags to print invisible arguments
+ -- correctly (#19310)
| tc `ifaceTyConHasKey` errorMessageTypeErrorFamKey
, not debug
diff --git a/testsuite/tests/ghci/scripts/T19310.script b/testsuite/tests/ghci/scripts/T19310.script
new file mode 100644
index 0000000000..64a72c2e50
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T19310.script
@@ -0,0 +1,4 @@
+:m GHC.Exts GHC.Types
+:set -fprint-explicit-kinds -XDataKinds -XKindSignatures
+type T = FUN 'Many :: Type -> Type -> Type
+:i T
diff --git a/testsuite/tests/ghci/scripts/T19310.stdout b/testsuite/tests/ghci/scripts/T19310.stdout
new file mode 100644
index 0000000000..4e7ad631fc
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T19310.stdout
@@ -0,0 +1,3 @@
+type T :: * -> * -> *
+type T = (->) @{'LiftedRep} @{'LiftedRep} :: * -> * -> *
+ -- Defined at <interactive>:3:1
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
index a85fe27fd3..13b2b73b6c 100755
--- a/testsuite/tests/ghci/scripts/all.T
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -329,4 +329,5 @@ test('T18828', normal, ghci_script, ['T18828.script'])
test('T19197', normal, ghci_script, ['T19197.script'])
test('T19158', normal, ghci_script, ['T19158.script'])
test('T19279', normal, ghci_script, ['T19279.script'])
+test('T19310', normal, ghci_script, ['T19310.script'])