ghc-lib-parser-9.12.2.20250421: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Tc.Errors.Hole.FitTypes

Synopsis

- data TypedHole = TypedHole {
  - th_relevant_cts :: Bag CtEvidence
  - th_implics :: [Implication]
  - th_hole :: Maybe Hole
  }
- data HoleFit
  - = HoleFit {
    - hfId :: Id
    - hfCand :: HoleFitCandidate
    - hfType :: TcType
    - hfRefLvl :: Int
    - hfWrap :: [TcType]
    - hfMatches :: [TcType]
    - hfDoc :: Maybe [HsDocString]
    }
  - | RawHoleFit SDoc
- data HoleFitCandidate
  - = IdHFCand Id
  - | NameHFCand Name
  - | GreHFCand GlobalRdrElt
- hfIsLcl :: HoleFit -> Bool
- pprHoleFitCand :: HoleFitCandidate -> SDoc

# Documentation

data TypedHole Source #

Constructors

TypedHole |

Fields

- th_relevant_cts :: Bag CtEvidence

  Any relevant Cts to the hole

- th_implics :: [Implication]

  The nested implications of the hole with the innermost implication first.

- th_hole :: Maybe Hole

  The hole itself, if available.

#### Instances

Instances details

Outputable TypedHole Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods ppr :: TypedHole -> SDoc Source #

data HoleFit Source #

HoleFit is the type we use for valid hole fits. It contains the element that was checked, the Id of that element as found by `tcLookup`, and the refinement level of the fit, which is the number of extra argument holes that this fit uses (e.g. if hfRefLvl is 2, the fit is for `Id _ _`).

Constructors

HoleFit |

Fields

- hfId :: Id

  The elements id in the TcM

- hfCand :: HoleFitCandidate

  The candidate that was checked.

- hfType :: TcType

  The type of the id, possibly zonked.

- hfRefLvl :: Int

  The number of holes in this fit.

- hfWrap :: [TcType]

  The wrapper for the match.

- hfMatches :: [TcType]

  What the refinement variables got matched with, if anything

- hfDoc :: Maybe [HsDocString]

  Documentation of this HoleFit, if available.

RawHoleFit SDoc | A fit that is just displayed as is. Here so thatHoleFitPlugins can inject any fit they want.

#### Instances

Instances details

Outputable HoleFit Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods ppr :: HoleFit -> SDoc Source #
Eq HoleFit Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods (==) :: HoleFit -> HoleFit -> Bool Source # (/=) :: HoleFit -> HoleFit -> Bool Source #
Ord HoleFit Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods compare :: HoleFit -> HoleFit -> Ordering Source # (<) :: HoleFit -> HoleFit -> Bool Source # (<=) :: HoleFit -> HoleFit -> Bool Source # (>) :: HoleFit -> HoleFit -> Bool Source # (>=) :: HoleFit -> HoleFit -> Bool Source # max :: HoleFit -> HoleFit -> HoleFit Source # min :: HoleFit -> HoleFit -> HoleFit Source #

data HoleFitCandidate Source #

HoleFitCandidates are passed to hole fit plugins and then checked whether they fit a given typed-hole.

Constructors

IdHFCand Id |
NameHFCand Name |
GreHFCand GlobalRdrElt |

#### Instances

Instances details

NamedThing HoleFitCandidate Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods getOccName :: HoleFitCandidate -> OccName Source # getName :: HoleFitCandidate -> Name Source #
HasOccName HoleFitCandidate Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods occName :: HoleFitCandidate -> OccName Source #
Outputable HoleFitCandidate Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods ppr :: HoleFitCandidate -> SDoc Source #
Eq HoleFitCandidate Source # |
Instance details Defined in GHC.Tc.Errors.Hole.FitTypes Methods (==) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source # (/=) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source #
Ord HoleFitCandidate Source # |

Instance details

Defined in GHC.Tc.Errors.Hole.FitTypes

Methods

compare :: HoleFitCandidate -> HoleFitCandidate -> Ordering Source #

(<) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source #

(<=) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source #

(>) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source #

(>=) :: HoleFitCandidate -> HoleFitCandidate -> Bool Source #

max :: HoleFitCandidate -> HoleFitCandidate -> HoleFitCandidate Source #

min :: HoleFitCandidate -> HoleFitCandidate -> HoleFitCandidate Source #

hfIsLcl :: HoleFit -> Bool Source #

pprHoleFitCand :: HoleFitCandidate -> SDoc Source #