mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make fallback function throw by default.
This commit is contained in:
@@ -92,6 +92,8 @@ bool TypeChecker::visit(ContractDefinition const& _contract)
|
||||
else
|
||||
{
|
||||
fallbackFunction = function;
|
||||
if (_contract.isLibrary())
|
||||
typeError(fallbackFunction->location(), "Libraries cannot have fallback functions.");
|
||||
if (!fallbackFunction->parameters().empty())
|
||||
typeError(fallbackFunction->parameterList().location(), "Fallback function cannot take parameters.");
|
||||
if (!fallbackFunction->returnParameters().empty())
|
||||
|
||||
@@ -247,11 +247,8 @@ void ContractCompiler::appendFunctionSelector(ContractDefinition const& _contrac
|
||||
m_context << returnTag;
|
||||
appendReturnValuePacker(FunctionType(*fallback).returnParameterTypes(), _contract.isLibrary());
|
||||
}
|
||||
else if (_contract.isLibrary())
|
||||
// Reject invalid library calls and ether sent to a library.
|
||||
m_context.appendJumpTo(m_context.errorTag());
|
||||
else
|
||||
m_context << Instruction::STOP; // function not found
|
||||
m_context.appendJumpTo(m_context.errorTag());
|
||||
|
||||
for (auto const& it: interfaceFunctions)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user