From 65bf7baa81772b7f07a4c74d3510dbd2ef03592d Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Wed, 23 Sep 2015 00:56:03 +0200 Subject: DsBinds: Avoid using String when desugaring CallStack construction Previously CallStacks would be built using String, which would pull in GHC.Base while compiling GHC.Err. Use [Char] instead. --- compiler/deSugar/DsBinds.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'compiler') diff --git a/compiler/deSugar/DsBinds.hs b/compiler/deSugar/DsBinds.hs index 65760931f6..28e866d8e9 100644 --- a/compiler/deSugar/DsBinds.hs +++ b/compiler/deSugar/DsBinds.hs @@ -47,7 +47,7 @@ import Type import Kind (returnsConstraintKind) import Coercion hiding (substCo) import TysWiredIn ( eqBoxDataCon, coercibleDataCon, mkListTy - , mkBoxedTupleTy, stringTy, typeNatKind, typeSymbolKind ) + , mkBoxedTupleTy, charTy, typeNatKind, typeSymbolKind ) import Id import MkId(proxyHashId) import Class @@ -1023,7 +1023,10 @@ dsEvCallStack cs = do , return $ mkIntExprInt df (srcSpanEndCol l) ]) - let callSiteTy = mkBoxedTupleTy [stringTy, srcLocTy] + -- Be careful to use [Char] instead of String here to avoid + -- unnecessary dependencies on GHC.Base, particularly when + -- building GHC.Err.absentError + let callSiteTy = mkBoxedTupleTy [mkListTy charTy, srcLocTy] matchId <- newSysLocalDs $ mkListTy callSiteTy -- cgit v1.2.1