src/Pure/codegen.ML
changeset 18977 f24c416a4814
parent 18788 4f4ed2a01152
child 19046 bc5c6c9b114e
equal deleted inserted replaced
18976:4efb82669880 18977:f24c416a4814
   854           in x ^ " called by " ^ y ^ "\n" ^ string_of_cycle (b :: cs) end
   854           in x ^ " called by " ^ y ^ "\n" ^ string_of_cycle (b :: cs) end
   855       | string_of_cycle _ = ""
   855       | string_of_cycle _ = ""
   856   in
   856   in
   857     if module = "" then
   857     if module = "" then
   858       let
   858       let
   859         val modules = distinct (map (#2 o snd) code);
   859         val modules = gen_distinct (op =) (map (#2 o snd) code);
   860         val mod_gr = foldr (uncurry Graph.add_edge_acyclic)
   860         val mod_gr = foldr (uncurry Graph.add_edge_acyclic)
   861           (foldr (uncurry (Graph.new_node o rpair ())) Graph.empty modules)
   861           (foldr (uncurry (Graph.new_node o rpair ())) Graph.empty modules)
   862           (List.concat (map (fn (s, (_, module, _)) => map (pair module)
   862           (List.concat (map (fn (s, (_, module, _)) => map (pair module)
   863             (filter_out (equal module) (map (#2 o Graph.get_node gr)
   863             (filter_out (equal module) (map (#2 o Graph.get_node gr)
   864               (Graph.imm_succs gr s)))) code));
   864               (Graph.imm_succs gr s)))) code));