Skip to content

Commit 05a4ef6

Browse files
author
Daniel Kroening
authored
Merge pull request #867 from reuk/linter-complaint-master
Fix formatting in cegis-util/type_helper.cpp
2 parents 065810f + d85487c commit 05a4ef6

File tree

1 file changed

+41
-22
lines changed

1 file changed

+41
-22
lines changed

src/cegis/cegis-util/type_helper.cpp

Lines changed: 41 additions & 22 deletions
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,21 @@ 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 irept::subt &bases=lhs_class.bases();
38-
for(const irept &base : bases)
38+
if(type_eq(lhs, rhs, ns))
3939
{
40-
const typet &type=static_cast<const typet &>(base.find(ID_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 irept::subt &bases=lhs_class.bases();
45+
return std::any_of(
46+
std::begin(bases),
47+
std::end(bases),
48+
[&](const irept &base)
49+
{
50+
const typet &type=static_cast<const typet &>(base.find(ID_type));
51+
return instanceof(ns.follow(type), rhs, ns);
52+
});
4453
}
4554
}
4655

@@ -49,22 +58,32 @@ bool instanceof(const symbol_tablet &st, const typet &lhs, const typet &rhs)
4958
const namespacet ns(st);
5059
const typet &resolved_lhs=ns.follow(lhs);
5160
const typet &resolved_rhs=ns.follow(rhs);
52-
if(ID_class != resolved_lhs.id() || ID_class != resolved_rhs.id())
61+
if(ID_class!=resolved_lhs.id() || ID_class!=resolved_rhs.id())
62+
{
5363
return type_eq(resolved_lhs, resolved_rhs, ns);
64+
}
5465
return instanceof(resolved_lhs, resolved_rhs, ns);
5566
}
5667

57-
instanceof_anyt::instanceof_anyt(const symbol_tablet &st,
58-
const std::set<typet> &types) :
59-
st(st), types(types)
68+
instanceof_anyt::instanceof_anyt(
69+
const symbol_tablet &st,
70+
const std::set<typet> &types) :
71+
st(st),
72+
types(types)
6073
{
6174
}
6275

63-
bool instanceof_anyt::operator ()(const typet &type) const
76+
bool instanceof_anyt::operator()(const typet &type) const
6477
{
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);});
78+
if(types.empty())
79+
{
80+
return true;
81+
}
82+
return types.end()!=std::find_if(
83+
types.begin(),
84+
types.end(),
85+
[this, &type](const typet &rhs)
86+
{
87+
return instanceof(st, type, rhs);
88+
});
7089
}

0 commit comments

Comments
 (0)