@@ -1,108 +0,0 @@
1−{-# OPTIONS_GHC -Wall #-}
2−module Elm.Compiler.Objects
16−import qualified Data.List as List
17−import qualified Data.Map as Map
18−import qualified Data.Name as Name
20−import qualified AST.Optimized as Opt
21−import qualified Elm.ModuleName as ModuleName
22−import qualified Elm.Package as Pkg
23−import qualified Generate.JavaScript as JS
30−{-# NOINLINE empty #-}
33− Opt.Graph Map.empty Map.empty Map.empty
36−union :: Opt.Graph -> Opt.Graph -> Opt.Graph
37−union (Opt.Graph mains1 graph1 fields1) (Opt.Graph mains2 graph2 fields2) =
39− (Map.union mains1 mains2)
40− (Map.union graph1 graph2)
41− (Map.union fields1 fields2)
44−unions :: [Opt.Graph] -> Opt.Graph
51− List.foldl' union g gs
60− { _client :: Opt.KContent
61− , _server :: Maybe Opt.KContent
65−fromKernels :: Map.Map Name.Name Kernel -> Opt.Graph
69− (Map.mapKeys toGlobal (Map.map toNode kernels))
70− (Map.foldl' addKernel Map.empty kernels)
77−toGlobal :: Name.Name -> Opt.Global
79− Opt.Global (ModuleName.Canonical Pkg.kernel (Name.getKernel home)) Name.dollar
82−toNode :: Kernel -> Opt.Node
83−toNode (Kernel client server) =
84− Opt.Kernel client server
88−-- KERNEL TO ELM FIELDS
91−addKernel :: Map.Map Name.Name Int -> Kernel -> Map.Map Name.Name Int
92−addKernel fields (Kernel client maybeServer) =
93− addContent (maybe fields (addContent fields) maybeServer) client
96−addContent :: Map.Map Name.Name Int -> Opt.KContent -> Map.Map Name.Name Int
97−addContent fields (Opt.KContent chunks _) =
98− List.foldl' addChunk fields chunks
101−addChunk :: Map.Map Name.Name Int -> Opt.KChunk -> Map.Map Name.Name Int
102−addChunk fields chunk =
104− Opt.ElmField name ->
105− Map.insertWith (+) name 1 fields