Skip to content

Commit 88b1526

Browse files
authored
Merge pull request #7137 from diffblue/fix_expr2c_lambda
fix expr2c on lambda expressions
2 parents c3a57ec + f20515f commit 88b1526

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

src/ansi-c/expr2c.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -832,22 +832,22 @@ std::string expr2ct::convert_trinary(
832832
return dest;
833833
}
834834

835-
std::string expr2ct::convert_quantifier(
836-
const quantifier_exprt &src,
835+
std::string expr2ct::convert_binding(
836+
const binding_exprt &src,
837837
const std::string &symbol,
838838
unsigned precedence)
839839
{
840840
// our made-up syntax can only do one symbol
841-
if(src.op0().operands().size() != 1)
841+
if(src.variables().size() != 1)
842842
return convert_norep(src, precedence);
843843

844844
unsigned p0, p1;
845845

846-
std::string op0 = convert_with_precedence(src.symbol(), p0);
846+
std::string op0 = convert_with_precedence(src.variables().front(), p0);
847847
std::string op1 = convert_with_precedence(src.where(), p1);
848848

849849
std::string dest=symbol+" { ";
850-
dest += convert(src.symbol().type());
850+
dest += convert(src.variables().front().type());
851851
dest+=" "+op0+"; ";
852852
dest+=op1;
853853
dest+=" }";
@@ -3816,16 +3816,13 @@ std::string expr2ct::convert_with_precedence(
38163816
return convert_trinary(to_if_expr(src), "?", ":", precedence = 3);
38173817

38183818
else if(src.id()==ID_forall)
3819-
return convert_quantifier(
3820-
to_quantifier_expr(src), "forall", precedence = 2);
3819+
return convert_binding(to_quantifier_expr(src), "forall", precedence = 2);
38213820

38223821
else if(src.id()==ID_exists)
3823-
return convert_quantifier(
3824-
to_quantifier_expr(src), "exists", precedence = 2);
3822+
return convert_binding(to_quantifier_expr(src), "exists", precedence = 2);
38253823

38263824
else if(src.id()==ID_lambda)
3827-
return convert_quantifier(
3828-
to_quantifier_expr(src), "LAMBDA", precedence = 2);
3825+
return convert_binding(to_lambda_expr(src), "LAMBDA", precedence = 2);
38293826

38303827
else if(src.id()==ID_with)
38313828
return convert_with(src, precedence=16);

src/ansi-c/expr2c_class.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ class expr2ct
141141
std::string convert_overflow(
142142
const exprt &src, unsigned &precedence);
143143

144-
std::string convert_quantifier(
145-
const quantifier_exprt &,
144+
std::string convert_binding(
145+
const binding_exprt &,
146146
const std::string &symbol,
147147
unsigned precedence);
148148

0 commit comments

Comments
 (0)