| 185 | } |
| 186 | |
| 187 | bool |
| 188 | FactUnion::is_nonreadable_field(const Variable *v, const std::vector<const Fact*>& facts) |
| 189 | { |
| 190 | if (v->is_inside_union_field()) { |
| 191 | for (; v && !v->is_union_field(); v = v->field_var_of) { |
| 192 | /* Empty */ |
| 193 | } |
| 194 | assert(v->is_union_field()); |
| 195 | FactUnion tmp(v->field_var_of, v->get_field_id()); |
| 196 | const FactUnion* fu = dynamic_cast<const FactUnion*>(find_related_fact(facts, &tmp)); |
| 197 | if (fu==NULL || !tmp.imply(*fu)) { |
| 198 | return true; |
| 199 | } |
| 200 | } |
| 201 | return false; |
| 202 | } |
| 203 | |
| 204 | bool |
| 205 | FactUnion::equal(const Fact& f) const |
nothing calls this directly
no test coverage detected