@@ -76,6 +76,7 @@ printModule pkgMap = do
7676 ++ instDocs
7777 pkgDeps =
7878 collectPackageDeps
79+ pkgMap
7980 (ctx ^. Print. ctxTyImports)
8081 (ctx ^. Print. ctxOpaqueTyImports)
8182 (ctx ^. Print. ctxClassImports <> st ^. Print. stClassImports)
@@ -240,13 +241,21 @@ printImports selfModName pkgMap lbTyImports tsTyImports classImps ruleImps valIm
240241 importQualified :: (Doc ann , Doc ann ) -> Doc ann
241242 importQualified (pkg, mn) = " import" <+> " *" <+> " as" <+> mn <+> " from" <+> squotes pkg
242243
243- {- | `collectPackageDeps lbTyImports hsTyImports classImps ruleImps valImps` collects all the package dependencies.
244- Note that LB `lbTyImports` and `ruleImps` are wired by the user (as the user decides on the package name for their schemass ).
244+ {- | `collectPackageDeps pkgMap lbTyImports hsTyImports classImps ruleImps valImps` collects all the package dependencies.
245+ Note that LB `lbTyImports` and `ruleImps` are wired by the user (as the user decides on the package name for their schemas ).
245246-}
246- collectPackageDeps :: Set PC. QTyName -> Set Ts. QTyName -> Set Ts. QClassName -> Set (PC. InfoLess PC. ModuleName ) -> Set Ts. QValName -> Set Text
247- collectPackageDeps _lbTyImports hsTyImports classImps _ruleImps valImps =
247+ collectPackageDeps :: Ts. PkgMap -> Set PC. QTyName -> Set Ts. QTyName -> Set Ts. QClassName -> Set (PC. InfoLess PC. ModuleName ) -> Set Ts. QValName -> Set Text
248+ collectPackageDeps pkgMap lbTyImports hsTyImports classImps ruleImps valImps =
248249 let deps =
249250 Set. fromList [Ts. pkgNameToText pkgName | (Just pkgName, _, _) <- toList hsTyImports]
250251 `Set.union` Set. fromList [Ts. pkgNameToText pkgName | (pkgName, _, _) <- toList classImps]
251252 `Set.union` Set. fromList [Ts. pkgNameToText pkgName | (Just (pkgName, _), _) <- toList valImps]
253+ `Set.union` Set. fromList
254+ ( toList (Set. map fst lbTyImports `Set.union` ruleImps) >>= \ moduleName ->
255+ case Map. lookup moduleName pkgMap of
256+ Just pkgName -> return $ Ts. pkgNameToText pkgName
257+ -- If there is no module, then we assume that the qualified
258+ -- identifier is a builtin and hence requires no dependencies
259+ Nothing -> []
260+ )
252261 in deps
0 commit comments