Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Haskell.Tools.BackendGHC.Names
Description
Functions that convert the basic elements of the GHC AST to corresponding elements in the Haskell-tools AST representation
Synopsis
- trfOperator :: forall n r. TransformName n r => Located (IdP n) -> Trf (Ann UOperator (Dom r) RangeStage)
- trfOperator' :: forall n r. TransformName n r => IdP n -> Trf (UOperator (Dom r) RangeStage)
- trfName :: forall n r. TransformName n r => Located (IdP n) -> Trf (Ann UName (Dom r) RangeStage)
- trfName' :: forall n r. TransformName n r => IdP n -> Trf (UName (Dom r) RangeStage)
- trfAmbiguousFieldName :: TransformName n r => Located (AmbiguousFieldOcc n) -> Trf (Ann UName (Dom r) RangeStage)
- trfAmbiguousFieldName' :: forall n r. TransformName n r => SrcSpan -> AmbiguousFieldOcc n -> Trf (Ann UName (Dom r) RangeStage)
- trfAmbiguousOperator' :: forall n r. TransformName n r => SrcSpan -> AmbiguousFieldOcc n -> Trf (Ann UOperator (Dom r) RangeStage)
- type CorrectPass n = (Data (HsLit n), Outputable (HsLit n), Data (HsType n), Outputable (HsType n), Data (Pat n), Outputable (Pat n), Data (HsExpr n), Outputable (HsExpr n), Data (Stmt n (LHsExpr n)), Outputable (Stmt n (LHsExpr n)), Data (Stmt n (LHsCmd n)), Outputable (Stmt n (LHsCmd n)), Data (HsCmd n), Outputable (HsCmd n), Data (Sig n), Outputable (Sig n), Data (HsLocalBinds n), Outputable (HsLocalBinds n), Data (HsBind n), Outputable (HsBind n), Data (IdP n), Outputable (IdP n), Data (ConDecl n), Outputable (ConDecl n), Data (HsDecl n), Outputable (HsDecl n), Data (HsSplice n), Outputable (HsSplice n))
- type ConvOk n = (XSigPat n ~ HsWildCardBndrs n (HsImplicitBndrs n (LHsType n)), XExprWithTySig n ~ LHsSigWcType n, XAppTypeE n ~ LHsWcType n, NameOrRdrName (IdP n) ~ IdP n)
- class (ConvOk n, Eq n, CorrectPass n, GHCName n, FromGHCName (IdP n), HasOccName (IdP n)) => TransformableName n where
- correctNameString :: IdP n -> Trf String
- transformSplice :: HsSplice GhcPs -> Trf (HsSplice n)
- class (TransformableName name, HsHasName (IdP name), FromGHCName (IdP res), Eq (IdP name), GHCName res, NameOrRdrName (IdP name) ~ IdP name, XUnambiguous name ~ XCFieldOcc name) => TransformName name res where
- transformName :: IdP name -> IdP res
- trfNameText :: String -> Trf (Ann UName (Dom r) RangeStage)
- trfImplicitName :: HsIPName -> Trf (Ann UName (Dom r) RangeStage)
- isOperatorStr :: String -> Bool
- trfQualifiedName :: forall n r. TransformName n r => Bool -> Located (IdP n) -> Trf (Ann UQualifiedName (Dom r) RangeStage)
- trfQualifiedNameFocus :: forall n r. TransformName n r => Bool -> IdP n -> Trf (Ann UQualifiedName (Dom r) RangeStage)
- trfQualifiedName' :: forall n r. TransformName n r => IdP n -> Trf (UQualifiedName (Dom r) RangeStage)
- trfOperatorStr :: Bool -> String -> Trf (AnnListG UNamePart (Dom r) RangeStage)
- trfNameStr :: Bool -> String -> Trf (AnnListG UNamePart (Dom r) RangeStage)
- trfNameStr' :: String -> SrcLoc -> [Ann UNamePart (Dom r) RangeStage]
- trfFastString :: Located FastString -> Trf (Ann UStringNode (Dom r) RangeStage)
Documentation
trfOperator :: forall n r. TransformName n r => Located (IdP n) -> Trf (Ann UOperator (Dom r) RangeStage) Source #
trfOperator' :: forall n r. TransformName n r => IdP n -> Trf (UOperator (Dom r) RangeStage) Source #
trfName :: forall n r. TransformName n r => Located (IdP n) -> Trf (Ann UName (Dom r) RangeStage) Source #
trfName' :: forall n r. TransformName n r => IdP n -> Trf (UName (Dom r) RangeStage) Source #
trfAmbiguousFieldName :: TransformName n r => Located (AmbiguousFieldOcc n) -> Trf (Ann UName (Dom r) RangeStage) Source #
trfAmbiguousFieldName' :: forall n r. TransformName n r => SrcSpan -> AmbiguousFieldOcc n -> Trf (Ann UName (Dom r) RangeStage) Source #
trfAmbiguousOperator' :: forall n r. TransformName n r => SrcSpan -> AmbiguousFieldOcc n -> Trf (Ann UOperator (Dom r) RangeStage) Source #
type CorrectPass n = (Data (HsLit n), Outputable (HsLit n), Data (HsType n), Outputable (HsType n), Data (Pat n), Outputable (Pat n), Data (HsExpr n), Outputable (HsExpr n), Data (Stmt n (LHsExpr n)), Outputable (Stmt n (LHsExpr n)), Data (Stmt n (LHsCmd n)), Outputable (Stmt n (LHsCmd n)), Data (HsCmd n), Outputable (HsCmd n), Data (Sig n), Outputable (Sig n), Data (HsLocalBinds n), Outputable (HsLocalBinds n), Data (HsBind n), Outputable (HsBind n), Data (IdP n), Outputable (IdP n), Data (ConDecl n), Outputable (ConDecl n), Data (HsDecl n), Outputable (HsDecl n), Data (HsSplice n), Outputable (HsSplice n)) Source #
type ConvOk n = (XSigPat n ~ HsWildCardBndrs n (HsImplicitBndrs n (LHsType n)), XExprWithTySig n ~ LHsSigWcType n, XAppTypeE n ~ LHsWcType n, NameOrRdrName (IdP n) ~ IdP n) Source #
class (ConvOk n, Eq n, CorrectPass n, GHCName n, FromGHCName (IdP n), HasOccName (IdP n)) => TransformableName n where Source #
Methods
correctNameString :: IdP n -> Trf String Source #
transformSplice :: HsSplice GhcPs -> Trf (HsSplice n) Source #
Instances
TransformableName GhcPs Source # | |
Defined in Language.Haskell.Tools.BackendGHC.Names | |
TransformableName GhcRn Source # | |
Defined in Language.Haskell.Tools.BackendGHC.Names |
class (TransformableName name, HsHasName (IdP name), FromGHCName (IdP res), Eq (IdP name), GHCName res, NameOrRdrName (IdP name) ~ IdP name, XUnambiguous name ~ XCFieldOcc name) => TransformName name res where Source #
This class allows us to use the same transformation code for multiple variants of the GHC AST.
GHC UName annotated with name
can be transformed to our representation with semantic annotations of res
.
Instances
TransformName GhcPs GhcPs Source # | |
Defined in Language.Haskell.Tools.BackendGHC.Names | |
(FromGHCName (IdP res), GHCName res) => TransformName GhcRn res Source # | |
Defined in Language.Haskell.Tools.BackendGHC.Names |
trfNameText :: String -> Trf (Ann UName (Dom r) RangeStage) Source #
trfImplicitName :: HsIPName -> Trf (Ann UName (Dom r) RangeStage) Source #
isOperatorStr :: String -> Bool Source #
trfQualifiedName :: forall n r. TransformName n r => Bool -> Located (IdP n) -> Trf (Ann UQualifiedName (Dom r) RangeStage) Source #
trfQualifiedNameFocus :: forall n r. TransformName n r => Bool -> IdP n -> Trf (Ann UQualifiedName (Dom r) RangeStage) Source #
trfQualifiedName' :: forall n r. TransformName n r => IdP n -> Trf (UQualifiedName (Dom r) RangeStage) Source #
trfOperatorStr :: Bool -> String -> Trf (AnnListG UNamePart (Dom r) RangeStage) Source #
trfNameStr :: Bool -> String -> Trf (AnnListG UNamePart (Dom r) RangeStage) Source #
Creates a qualified name from a name string
trfNameStr' :: String -> SrcLoc -> [Ann UNamePart (Dom r) RangeStage] Source #
trfFastString :: Located FastString -> Trf (Ann UStringNode (Dom r) RangeStage) Source #