Skip to content

Commit f5aa612

Browse files
authored
Merge pull request #866 from reuk/linter-complaint-fix
Fix linter complaint
2 parents 466f629 + 8ad72a7 commit f5aa612

File tree

1 file changed

+40
-22
lines changed

1 file changed

+40
-22
lines changed

src/cegis/cegis-util/type_helper.cpp

+40-22
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,16 @@ Author: Daniel Kroening, [email protected]
1616

1717
#include <cegis/cegis-util/type_helper.h>
1818

19-
const typet &replace_struct_by_symbol_type(const symbol_tablet &st,
20-
const typet &type)
19+
const typet &replace_struct_by_symbol_type(
20+
const symbol_tablet &st,
21+
const typet &type)
2122
{
2223
const irep_idt &type_id=type.id();
23-
if(ID_struct != type_id && ID_incomplete_struct != type_id
24-
&& ID_union != type_id && ID_incomplete_union != type_id) return type;
24+
if(type_id!=ID_struct && type_id!=ID_incomplete_struct &&
25+
type_id!=ID_union && type_id!=ID_incomplete_union)
26+
{
27+
return type;
28+
}
2529
std::string tag(TAG_PREFIX);
2630
tag+=id2string(to_struct_union_type(type).get_tag());
2731
return st.lookup(tag).type;
@@ -31,16 +35,20 @@ namespace
3135
{
3236
bool instanceof(const typet &lhs, const typet &rhs, const namespacet &ns)
3337
{
34-
if(type_eq(lhs, rhs, ns)) return true;
35-
assert(ID_class == lhs.id());
36-
const class_typet &lhs_class=to_class_type(lhs);
37-
const class_typet::basest &bases=lhs_class.bases();
38-
for(const exprt &base : bases)
38+
if(type_eq(lhs, rhs, ns))
3939
{
40-
const typet &type=base.type();
41-
if (instanceof(ns.follow(type), rhs, ns)) return true;
40+
return true;
4241
}
43-
return false;
42+
assert(ID_class==lhs.id());
43+
const class_typet &lhs_class=to_class_type(lhs);
44+
const class_typet::basest &bases=lhs_class.bases();
45+
return std::any_of(
46+
std::begin(bases),
47+
std::end(bases),
48+
[&](const exprt &base)
49+
{
50+
return instanceof(ns.follow(base.type()), rhs, ns);
51+
});
4452
}
4553
}
4654

@@ -49,22 +57,32 @@ bool instanceof(const symbol_tablet &st, const typet &lhs, const typet &rhs)
4957
const namespacet ns(st);
5058
const typet &resolved_lhs=ns.follow(lhs);
5159
const typet &resolved_rhs=ns.follow(rhs);
52-
if(ID_class != resolved_lhs.id() || ID_class != resolved_rhs.id())
60+
if(ID_class!=resolved_lhs.id() || ID_class!=resolved_rhs.id())
61+
{
5362
return type_eq(resolved_lhs, resolved_rhs, ns);
63+
}
5464
return instanceof(resolved_lhs, resolved_rhs, ns);
5565
}
5666

57-
instanceof_anyt::instanceof_anyt(const symbol_tablet &st,
58-
const std::set<typet> &types) :
59-
st(st), types(types)
67+
instanceof_anyt::instanceof_anyt(
68+
const symbol_tablet &st,
69+
const std::set<typet> &types):
70+
st(st),
71+
types(types)
6072
{
6173
}
6274

63-
bool instanceof_anyt::operator ()(const typet &type) const
75+
bool instanceof_anyt::operator()(const typet &type) const
6476
{
65-
if(types.empty()) return true;
66-
return types.end()
67-
!= std::find_if(types.begin(), types.end(),
68-
[this, &type](const typet &rhs)
69-
{ return instanceof(st, type, rhs);});
77+
if(types.empty())
78+
{
79+
return true;
80+
}
81+
return types.end()!=std::find_if(
82+
types.begin(),
83+
types.end(),
84+
[this, &type](const typet &rhs)
85+
{
86+
return instanceof(st, type, rhs);
87+
});
7088
}

0 commit comments

Comments
 (0)