refactor(library/module): interface to get task dependencies for modifications
This commit is contained in:
parent
a2bc967fac
commit
370d69de3f
3 changed files with 8 additions and 3 deletions
|
|
@ -300,6 +300,11 @@ struct decl_modification : public modification {
|
|||
static std::shared_ptr<modification const> deserialize(deserializer & d) {
|
||||
return std::make_shared<decl_modification>(read_declaration(d));
|
||||
}
|
||||
|
||||
void get_task_dependencies(std::vector<generic_task_result> & deps) const override {
|
||||
if (m_decl.is_theorem())
|
||||
deps.push_back(m_decl.get_value_task());
|
||||
}
|
||||
};
|
||||
|
||||
struct inductive_modification : public modification {
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ public:
|
|||
virtual const char * get_key() const = 0;
|
||||
virtual void perform(environment &) const = 0;
|
||||
virtual void serialize(serializer &) const = 0;
|
||||
virtual void get_task_dependencies(std::vector<generic_task_result> &) const {}
|
||||
};
|
||||
|
||||
#define LEAN_MODIFICATION(k) \
|
||||
|
|
|
|||
|
|
@ -112,9 +112,8 @@ public:
|
|||
std::vector<generic_task_result> get_dependencies() override {
|
||||
if (auto res = m_mod->m_result.peek()) {
|
||||
std::vector<generic_task_result> deps;
|
||||
res->m_env->for_each_declaration([&] (declaration const & d) {
|
||||
if (d.is_theorem()) deps.push_back(d.get_value_task());
|
||||
});
|
||||
for (auto & mdf : res->m_loaded_module->m_modifications)
|
||||
mdf->get_task_dependencies(deps);
|
||||
return deps;
|
||||
} else {
|
||||
return {m_mod->m_result};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue