feat(kernel/justification): add function for creating simple justification objects
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
d58b8a8102
commit
830537a58b
2 changed files with 7 additions and 1 deletions
|
@ -241,7 +241,12 @@ justification mk_justification(optional<expr> const & s, pp_jst_sfn const & fn)
|
||||||
return mk_justification(s, [=](formatter const & fmt, options const & opts, pos_info_provider const * p, substitution const & subst) {
|
return mk_justification(s, [=](formatter const & fmt, options const & opts, pos_info_provider const * p, substitution const & subst) {
|
||||||
return compose(to_pos(s, p), fn(fmt, opts, subst)); });
|
return compose(to_pos(s, p), fn(fmt, opts, subst)); });
|
||||||
}
|
}
|
||||||
|
justification mk_justification(char const * msg, optional<expr> const & s) {
|
||||||
|
std::string _msg(msg);
|
||||||
|
return mk_justification(s, [=](formatter const &, options const &, pos_info_provider const *, substitution const &) {
|
||||||
|
return format(_msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
std::ostream & operator<<(std::ostream & out, justification const & j) {
|
std::ostream & operator<<(std::ostream & out, justification const & j) {
|
||||||
if (j.is_none()) {
|
if (j.is_none()) {
|
||||||
out << "none";
|
out << "none";
|
||||||
|
|
|
@ -110,6 +110,7 @@ justification mk_assumption_justification(unsigned idx);
|
||||||
\brief Create a justification for constraints produced by the type checker.
|
\brief Create a justification for constraints produced by the type checker.
|
||||||
*/
|
*/
|
||||||
justification mk_justification(optional<expr> const & s, pp_jst_fn const & fn);
|
justification mk_justification(optional<expr> const & s, pp_jst_fn const & fn);
|
||||||
|
justification mk_justification(char const * msg, optional<expr> const & s = none_expr());
|
||||||
/**
|
/**
|
||||||
\brief Create a justification for constraints produced by the type checker.
|
\brief Create a justification for constraints produced by the type checker.
|
||||||
It is similar to the previous function, but the position of \c s will be automatically included.
|
It is similar to the previous function, but the position of \c s will be automatically included.
|
||||||
|
|
Loading…
Reference in a new issue