1191 |
1191 |
1192 fun gen_fixes prep_var raw_vars ctxt = |
1192 fun gen_fixes prep_var raw_vars ctxt = |
1193 let |
1193 let |
1194 val (vars, _) = fold_map prep_var raw_vars ctxt; |
1194 val (vars, _) = fold_map prep_var raw_vars ctxt; |
1195 val (xs, ctxt') = Variable.add_fixes_binding (map #1 vars) ctxt; |
1195 val (xs, ctxt') = Variable.add_fixes_binding (map #1 vars) ctxt; |
|
1196 val _ = |
|
1197 Context_Position.reports ctxt' |
|
1198 (flat (map2 (fn x => fn pos => |
|
1199 [(pos, Variable.markup ctxt' x), (pos, Variable.markup_entity_def ctxt' x)]) |
|
1200 xs (map (Binding.pos_of o #1) vars))); |
1196 val vars' = map2 (fn x => fn (_, opt_T, mx) => (x, opt_T, mx)) xs vars; |
1201 val vars' = map2 (fn x => fn (_, opt_T, mx) => (x, opt_T, mx)) xs vars; |
1197 val (Ts, ctxt'') = fold_map declare_var vars' ctxt'; |
1202 val (Ts, ctxt'') = fold_map declare_var vars' ctxt'; |
1198 val vars'' = map2 (fn T => fn (x, _, mx) => (x, T, mx)) Ts vars'; |
1203 val vars'' = map2 (fn T => fn (x, _, mx) => (x, T, mx)) Ts vars'; |
1199 in (xs, add_syntax vars'' ctxt'') end; |
1204 in (xs, add_syntax vars'' ctxt'') end; |
1200 |
1205 |