Improve error message for delegatecall.value

This commit is contained in:
Leonardo Alt 2019-06-06 10:36:41 +02:00
parent fc35c139ca
commit b7634faa3d
2 changed files with 6 additions and 1 deletions

View File

@ -2065,6 +2065,11 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess)
{
if (funType->kind() == FunctionType::Kind::Creation)
errorMsg = "Constructor for " + t.front()->toString() + " must be payable for member \"value\" to be available.";
else if (
funType->kind() == FunctionType::Kind::DelegateCall ||
funType->kind() == FunctionType::Kind::BareDelegateCall
)
errorMsg = "Member \"value\" is not allowed in delegated calls due to \"msg.value\" persisting.";
else
errorMsg = "Member \"value\" is only available for payable functions.";
}

View File

@ -5,4 +5,4 @@ contract test {
}
}
// ----
// TypeError: (87-96): Member "value" is only available for payable functions.
// TypeError: (87-96): Member "value" is not allowed in delegated calls due to "msg.value" persisting.