Fix error in SMTChecker: Use rich indentifier instead of external identifier to ecnode member access to functions

This commit is contained in:
Pawel Gebal
2023-06-23 15:24:55 +02:00
parent b26090c288
commit 826fd90dcf
3 changed files with 20 additions and 1 deletions
+5 -1
View File
@@ -33,6 +33,7 @@
#include <liblangutil/CharStreamProvider.h>
#include <libsolutil/Algorithms.h>
#include <libsolutil/FunctionSelector.h>
#include <range/v3/view.hpp>
@@ -1358,7 +1359,10 @@ bool SMTEncoder::visit(MemberAccess const& _memberAccess)
{
auto const* functionType = dynamic_cast<FunctionType const*>(_memberAccess.annotation().type);
if (functionType && functionType->hasDeclaration())
defineExpr(_memberAccess, functionType->externalIdentifier());
defineExpr(
_memberAccess,
util::selectorFromSignatureU32(functionType->richIdentifier())
);
return true;
}