GHC.HsToCore.Match.Literal

ghc-9.0.0.20201227: The GHC API

Safe Haskell | None
Language | Haskell2010

GHC.HsToCore.Match.Literal

Synopsis

- dsLit :: HsLit GhcRn -> DsM CoreExpr
- dsOverLit :: HsOverLit GhcTc -> DsM CoreExpr
- hsLitKey :: Platform -> HsLit GhcTc -> Literal
- tidyLitPat :: HsLit GhcTc -> Pat GhcTc
- tidyNPat :: HsOverLit GhcTc -> Maybe (SyntaxExpr GhcTc) -> SyntaxExpr GhcTc -> Type -> Pat GhcTc
- matchLiterals :: NonEmpty Id -> Type -> NonEmpty (NonEmpty EquationInfo) -> DsM (MatchResult CoreExpr)
- matchNPlusKPats :: NonEmpty Id -> Type -> NonEmpty EquationInfo -> DsM (MatchResult CoreExpr)
- matchNPats :: NonEmpty Id -> Type -> NonEmpty EquationInfo -> DsM (MatchResult CoreExpr)
- warnAboutIdentities :: DynFlags -> CoreExpr -> Type -> DsM ()
- warnAboutOverflowedOverLit :: HsOverLit GhcTc -> DsM ()
- warnAboutOverflowedLit :: HsLit GhcTc -> DsM ()
- warnAboutEmptyEnumerations :: FamInstEnvs -> DynFlags -> LHsExpr GhcTc -> Maybe (LHsExpr GhcTc) -> LHsExpr GhcTc -> DsM ()

# Documentation

dsLit :: HsLit GhcRn -> DsM CoreExpr Source #

dsOverLit :: HsOverLit GhcTc -> DsM CoreExpr Source #

Post-typechecker, the `HsExpr` field of an `OverLit` contains (an expression for) the literal value itself.

hsLitKey :: Platform -> HsLit GhcTc -> Literal Source #

tidyLitPat :: HsLit GhcTc -> Pat GhcTc Source #

tidyNPat :: HsOverLit GhcTc -> Maybe (SyntaxExpr GhcTc) -> SyntaxExpr GhcTc -> Type -> Pat GhcTc Source #

matchLiterals Source #

Arguments

:: NonEmpty Id |
-> Type | Type of the whole case expression
-> NonEmpty (NonEmpty EquationInfo) | All PgLits
-> DsM (MatchResult CoreExpr) |

matchNPlusKPats :: NonEmpty Id -> Type -> NonEmpty EquationInfo -> DsM (MatchResult CoreExpr) Source #

matchNPats :: NonEmpty Id -> Type -> NonEmpty EquationInfo -> DsM (MatchResult CoreExpr) Source #

warnAboutIdentities :: DynFlags -> CoreExpr -> Type -> DsM () Source #

warnAboutOverflowedOverLit :: HsOverLit GhcTc -> DsM () Source #

Emit warnings on overloaded integral literals which overflow the bounds implied by their type.

warnAboutOverflowedLit :: HsLit GhcTc -> DsM () Source #

Emit warnings on integral literals which overflow the bounds implied by their type.

warnAboutEmptyEnumerations :: FamInstEnvs -> DynFlags -> LHsExpr GhcTc -> Maybe (LHsExpr GhcTc) -> LHsExpr GhcTc -> DsM () Source #

Warns about `[2,3 .. 1]` or `[`b` .. `a`]` which return the empty list. For numeric literals, only works for integral types, not floating point.