(* to share *)
let type_check err f st = function
| a, uri, E.Abst (n, t) ->
+ let err msg = err (L.Uri uri :: msg) in
let f xt tt =
let e = BE.set_entity (a, uri, E.Abst (n, xt)) in f tt e
in
- L.loc := U.string_of_uri uri; BT.type_of err f st BR.empty_kam t
+ BT.type_of err f st BR.empty_kam t
| a, uri, E.Abbr t ->
+ let err msg = err (L.Uri uri :: msg) in
let f xt tt =
let xt = match xt with
| B.Cast _ -> xt
in
let e = BE.set_entity (a, uri, E.Abbr xt) in f tt e
in
- L.loc := U.string_of_uri uri; BT.type_of err f st BR.empty_kam t
+ BT.type_of err f st BR.empty_kam t
| _, _, E.Void -> assert false
let validate err f st e =
| _, uri, E.Abbr t -> uri, t
| _, _, E.Void -> assert false
in
+ let err msg = err (L.Uri uri :: msg) in
let f () = let _ = BE.set_entity e in f () in
- L.loc := U.string_of_uri uri; BV.validate err f st BR.empty_kam t
+ BV.validate err f st BR.empty_kam t