module Imp.Extra.ImportDecl where

import qualified Data.Maybe as Maybe
import qualified GHC.Hs as Hs
import qualified GHC.Plugins as Plugin

toModuleName :: Hs.ImportDecl Hs.GhcPs -> Plugin.ModuleName
toModuleName :: ImportDecl GhcPs -> ModuleName
toModuleName ImportDecl GhcPs
x = GenLocated SrcSpanAnnA ModuleName -> ModuleName
forall l e. GenLocated l e -> e
Plugin.unLoc (GenLocated SrcSpanAnnA ModuleName -> ModuleName)
-> (Maybe (GenLocated SrcSpanAnnA ModuleName)
    -> GenLocated SrcSpanAnnA ModuleName)
-> Maybe (GenLocated SrcSpanAnnA ModuleName)
-> ModuleName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. GenLocated SrcSpanAnnA ModuleName
-> Maybe (GenLocated SrcSpanAnnA ModuleName)
-> GenLocated SrcSpanAnnA ModuleName
forall a. a -> Maybe a -> a
Maybe.fromMaybe (ImportDecl GhcPs -> XRec GhcPs ModuleName
forall pass. ImportDecl pass -> XRec pass ModuleName
Hs.ideclName ImportDecl GhcPs
x) (Maybe (GenLocated SrcSpanAnnA ModuleName) -> ModuleName)
-> Maybe (GenLocated SrcSpanAnnA ModuleName) -> ModuleName
forall a b. (a -> b) -> a -> b
$ ImportDecl GhcPs -> Maybe (XRec GhcPs ModuleName)
forall pass. ImportDecl pass -> Maybe (XRec pass ModuleName)
Hs.ideclAs ImportDecl GhcPs
x