src/Pure/General/name_space.ML
changeset 27196 ef2f01da7a12
parent 26657 35249f5367b3
child 28860 b1d46059d502
equal deleted inserted replaced
27195:bbf4cbc69243 27196:ef2f01da7a12
   177     (fn (entry, _) => (f entry, stamp ())) tab, xtab);
   177     (fn (entry, _) => (f entry, stamp ())) tab, xtab);
   178 
   178 
   179 in
   179 in
   180 
   180 
   181 val del_name = map_space o apfst o remove (op =);
   181 val del_name = map_space o apfst o remove (op =);
       
   182 fun del_name_extra name = map_space (apfst (fn [] => [] | x :: xs => x :: remove (op =) name xs));
   182 val add_name = map_space o apfst o update (op =);
   183 val add_name = map_space o apfst o update (op =);
   183 val add_name' = map_space o apsnd o update (op =);
   184 val add_name' = map_space o apsnd o update (op =);
   184 
   185 
   185 end;
   186 end;
   186 
   187 
   195   else
   196   else
   196     let val names = valid_accesses space name in
   197     let val names = valid_accesses space name in
   197       space
   198       space
   198       |> add_name' name name
   199       |> add_name' name name
   199       |> fold (del_name name) (if fully then names else names inter_string [base name])
   200       |> fold (del_name name) (if fully then names else names inter_string [base name])
       
   201       |> fold (del_name_extra name) (get_accesses space name)
   200     end;
   202     end;
   201 
   203 
   202 
   204 
   203 (* merge *)
   205 (* merge *)
   204 
   206