module UHC.Light.Compiler.Gam.Utils ( mentrelFilterMpExtendViaValGam ) where import Data.List import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Opts import UHC.Light.Compiler.Ty import UHC.Light.Compiler.Ty.FitsInCommon import UHC.Light.Compiler.Ty.FitsIn import UHC.Light.Compiler.Error import UHC.Light.Compiler.Gam import UHC.Light.Compiler.VarMp import UHC.Light.Compiler.Substitutable import qualified Data.Map as Map import qualified Data.Set as Set import UHC.Light.Compiler.Ty.UsedNames import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Gam.ValGam {-# LINE 63 "src/ehc/Gam/Utils.chs" #-} -- | Lookup indirectly used identifiers, type constants from types of value bindings. mentrelFilterMpExtendViaValGam :: HsName -> ValGam -> ModEntRelFilterMp -> ModEntRelFilterMp mentrelFilterMpExtendViaValGam moduleNm valGam mentrelFilterMp = mentrelFilterMpUnions ( [ mentrelFilterMp ] ++ [ maybe Map.empty (tyUsedNames moduleNm . vgiTy) $ valGamLookup n valGam | n <- Set.toList $ Map.findWithDefault Set.empty IdOcc_Val mentrelFilterMp ] )