ClassAna.hs revision 7abd0c58a5ce51db13f93de82407b2188d55d298
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederModule : $Header$
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederCopyright : (c) Christian Maeder and Uni Bremen 2003
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederLicence : All rights reserved.
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederMaintainer : hets@tzi.de
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederStability : experimental
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederPortability : portable
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder analyse given classes
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian Maederimport qualified Common.Lib.Map as Map
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroederimport qualified Common.Lib.Set as Set
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian Maeder-- | add diagnostic messages
bf059a1d954c7e4d74f45ca0822e2f41709a0149Christian MaederaddDiags :: [Diagnosis] -> State Env ()
allSuperClasses :: ClassMap -> ClassId -> Set.Set ClassId
let recurse = Set.unions . map (allSuperClasses ce) in
case Map.lookup ci ce of
Just (Intersection cis _) -> recurse $ Set.toList cis
_ -> Set.single ci)
return $ isJust $ Map.lookup ci cMap
case Map.lookup ci cMap of
if Set.isEmpty s then return star else
anaClassId $ Set.findMin s
) $ Set.toList s
return (k, Intersection (Set.fromList restCs) ps)