fix(library/congr_lemma_manager): warnings when compiling using clang on OSX

This commit is contained in:
Leonardo de Moura 2015-11-16 18:23:17 -08:00
parent 8e4fd50913
commit 4afd366a2c
2 changed files with 6 additions and 14 deletions

View file

@ -13,11 +13,10 @@ Author: Leonardo de Moura
#include "library/congr_lemma_manager.h" #include "library/congr_lemma_manager.h"
namespace lean { namespace lean {
class congr_lemma_manager::imp { struct congr_lemma_manager::imp {
app_builder & m_builder; app_builder & m_builder;
fun_info_manager & m_fmanager; fun_info_manager & m_fmanager;
type_context & m_ctx; type_context & m_ctx;
bool m_ignore_inst_implicit;
struct key { struct key {
expr m_fn; expr m_fn;
unsigned m_nargs; unsigned m_nargs;
@ -289,8 +288,8 @@ class congr_lemma_manager::imp {
} }
public: public:
imp(app_builder & b, fun_info_manager & fm, bool ignore_inst_implicit): imp(app_builder & b, fun_info_manager & fm):
m_builder(b), m_fmanager(fm), m_ctx(fm.ctx()), m_ignore_inst_implicit(ignore_inst_implicit) {} m_builder(b), m_fmanager(fm), m_ctx(fm.ctx()) {}
optional<result> mk_congr_simp(expr const & fn) { optional<result> mk_congr_simp(expr const & fn) {
fun_info finfo = m_fmanager.get(fn); fun_info finfo = m_fmanager.get(fn);
@ -396,8 +395,8 @@ public:
} }
}; };
congr_lemma_manager::congr_lemma_manager(app_builder & b, fun_info_manager & fm, bool ignore_inst_implicit): congr_lemma_manager::congr_lemma_manager(app_builder & b, fun_info_manager & fm):
m_ptr(new imp(b, fm, ignore_inst_implicit)) { m_ptr(new imp(b, fm)) {
} }
congr_lemma_manager::~congr_lemma_manager() { congr_lemma_manager::~congr_lemma_manager() {

View file

@ -28,14 +28,7 @@ class congr_lemma_manager {
struct imp; struct imp;
std::unique_ptr<imp> m_ptr; std::unique_ptr<imp> m_ptr;
public: public:
/** \brief When ignore_inst_implicit is set to true, then congr_lemma_manager(app_builder & b, fun_info_manager & fm);
for type class instance implicit arguments that are *not* subsingletons,
the mananger will create congruence lemmas where these arguments remain fixed.
This is the behavior we want most of the time. For example, when creating a
congruence for
add : Pi {A : Type} [s : has_add A], A -> A -> A
we want the argumet s to remain fixed. */
congr_lemma_manager(app_builder & b, fun_info_manager & fm, bool ignore_inst_implicit = true);
~congr_lemma_manager(); ~congr_lemma_manager();
typedef congr_lemma result; typedef congr_lemma result;