mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Improved error message for lookup in function types.
This commit is contained in:
@@ -2141,8 +2141,25 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess)
|
||||
);
|
||||
}
|
||||
string errorMsg = "Member \"" + memberName + "\" not found or not visible "
|
||||
"after argument-dependent lookup in " + exprType->toString() +
|
||||
(memberName == "value" ? " - did you forget the \"payable\" modifier?" : ".");
|
||||
"after argument-dependent lookup in " + exprType->toString() + ".";
|
||||
if (memberName == "value")
|
||||
{
|
||||
errorMsg.pop_back();
|
||||
errorMsg += " - did you forget the \"payable\" modifier?";
|
||||
}
|
||||
else if (exprType->category() == Type::Category::Function)
|
||||
{
|
||||
if (auto const& funType = dynamic_pointer_cast<FunctionType const>(exprType))
|
||||
{
|
||||
auto const& t = funType->returnParameterTypes();
|
||||
if (t.size() == 1)
|
||||
if (
|
||||
t.front()->category() == Type::Category::Contract ||
|
||||
t.front()->category() == Type::Category::Struct
|
||||
)
|
||||
errorMsg += " Did you intend to call the function?";
|
||||
}
|
||||
}
|
||||
if (exprType->category() == Type::Category::Contract)
|
||||
for (auto const& addressMember: AddressType::addressPayable().nativeMembers(nullptr))
|
||||
if (addressMember.name == memberName)
|
||||
|
||||
Reference in New Issue
Block a user