Branch Coverage

src/panda/function_utils.h
Criterion Covered Total %
branch 250 500 50.0


line true false branch
13 0 148 virtual ~AnyFunction() {}
24 0 3 virtual ~Ifunction() {}
0 3 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 2 virtual ~Ifunction() {}
0 1 virtual ~Ifunction() {}
0 1 virtual ~Ifunction() {}
0 13 virtual ~Ifunction() {}
0 13 virtual ~Ifunction() {}
0 15 virtual ~Ifunction() {}
0 15 virtual ~Ifunction() {}
0 21 virtual ~Ifunction() {}
0 21 virtual ~Ifunction() {}
54 2 0 return this->func(args...);
2 0 return this->func(args...);
72 1 0 class abstract_function : public Ifunction, public storage {
0 1 class abstract_function : public Ifunction, public storage {
3 0 class abstract_function : public Ifunction, public storage {
0 3 class abstract_function : public Ifunction, public storage {
2 0 class abstract_function : public Ifunction, public storage {
0 2 class abstract_function : public Ifunction, public storage {
75 1 0 explicit abstract_function(F&& f) : storage(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : storage(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : storage(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : storage(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : storage(std::forward(f)) {}
83 0 1 auto foth = dynamic_cast*>(oth->get_base());
0 2 auto foth = dynamic_cast*>(oth->get_base());
0 2 auto foth = dynamic_cast*>(oth->get_base());
84 0 1 if (foth == nullptr) {
0 2 if (foth == nullptr) {
0 2 if (foth == nullptr) {
93 1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
2 0 class abstract_function : public Ifunction
0 2 class abstract_function : public Ifunction
2 0 class abstract_function : public Ifunction
0 2 class abstract_function : public Ifunction
2 0 class abstract_function : public Ifunction
0 2 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
1 0 class abstract_function : public Ifunction
0 1 class abstract_function : public Ifunction
101 1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
2 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
1 0 explicit abstract_function(F&& f) : Caller(std::forward(f)) {}
104 2 0 return Caller::operator()(*this, args...);
2 0 return Caller::operator()(*this, args...);
138 1 0 struct function_caster : public Ifunction {
0 1 struct function_caster : public Ifunction {
142 1 0 function_caster(From src) : src(src) {}
189 0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 2 if (!bool_or(f, true)) return nullptr;
0 2 if (!bool_or(f, true)) return nullptr;
0 2 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 2 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
0 1 if (!bool_or(f, true)) return nullptr;
190 1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
2 0 return new abstract_function(std::forward(f));
2 0 return new abstract_function(std::forward(f));
2 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
2 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
1 0 return new abstract_function(std::forward(f));
201 0 1 assert(bool_or(f, true));
0 1 assert(bool_or(f, true));
208 0 1 if (!func) return nullptr;
209 1 0 return new function_caster(func.func);
1 0 return new function_caster(func.func);