summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/ConLike.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Core/ConLike.hs')
-rw-r--r--compiler/GHC/Core/ConLike.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler/GHC/Core/ConLike.hs b/compiler/GHC/Core/ConLike.hs
index efe29f608f..bbdab332a7 100644
--- a/compiler/GHC/Core/ConLike.hs
+++ b/compiler/GHC/Core/ConLike.hs
@@ -16,13 +16,13 @@ module GHC.Core.ConLike (
, conLikeExTyCoVars
, conLikeName
, conLikeStupidTheta
- , conLikeWrapId_maybe
, conLikeImplBangs
, conLikeFullSig
, conLikeResTy
, conLikeFieldType
, conLikesWithFields
, conLikeIsInfix
+ , conLikeHasBuilder
) where
#include "HsVersions.h"
@@ -41,6 +41,7 @@ import GHC.Types.Var
import GHC.Core.Type(mkTyConApp)
import GHC.Core.Multiplicity
+import Data.Maybe( isJust )
import qualified Data.Data as Data
{-
@@ -144,12 +145,11 @@ conLikeStupidTheta :: ConLike -> ThetaType
conLikeStupidTheta (RealDataCon data_con) = dataConStupidTheta data_con
conLikeStupidTheta (PatSynCon {}) = []
--- | Returns the `Id` of the wrapper. This is also known as the builder in
--- some contexts. The value is Nothing only in the case of unidirectional
--- pattern synonyms.
-conLikeWrapId_maybe :: ConLike -> Maybe Id
-conLikeWrapId_maybe (RealDataCon data_con) = Just $ dataConWrapId data_con
-conLikeWrapId_maybe (PatSynCon pat_syn) = fst <$> patSynBuilder pat_syn
+-- | 'conLikeHasBuilder' returns True except for
+-- uni-directional pattern synonyms, which have no builder
+conLikeHasBuilder :: ConLike -> Bool
+conLikeHasBuilder (RealDataCon {}) = True
+conLikeHasBuilder (PatSynCon pat_syn) = isJust (patSynBuilder pat_syn)
-- | Returns the strictness information for each constructor
conLikeImplBangs :: ConLike -> [HsImplBang]