aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-09-06 21:51:45 +0800
committerGitHub <noreply@github.com>2016-09-06 21:51:45 +0800
commit358812569287976001ee1f6cec077038d3fcc937 (patch)
tree78ed0c2ea41b6984edb976f58998d69e8a27426a /libsolidity
parentfb73da30d83624a1579fd10210946af0e82394b0 (diff)
parent6ec40b3cdeca667cea2222755c6e145c72279b1d (diff)
downloaddexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar.gz
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar.bz2
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar.lz
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar.xz
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.tar.zst
dexon-solidity-358812569287976001ee1f6cec077038d3fcc937.zip
Merge pull request #1014 from ethereum/strict-fallback
Reject constant modifier on the fallback function
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp2
-rw-r--r--libsolidity/interface/InterfaceHandler.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index 06e26a76..fc1b1f59 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -94,6 +94,8 @@ bool TypeChecker::visit(ContractDefinition const& _contract)
fallbackFunction = function;
if (_contract.isLibrary())
typeError(fallbackFunction->location(), "Libraries cannot have fallback functions.");
+ if (fallbackFunction->isDeclaredConst())
+ typeError(fallbackFunction->location(), "Fallback function cannot be declared constant.");
if (!fallbackFunction->parameters().empty())
typeError(fallbackFunction->parameterList().location(), "Fallback function cannot take parameters.");
if (!fallbackFunction->returnParameters().empty())
diff --git a/libsolidity/interface/InterfaceHandler.cpp b/libsolidity/interface/InterfaceHandler.cpp
index 6e3ae78f..de16a372 100644
--- a/libsolidity/interface/InterfaceHandler.cpp
+++ b/libsolidity/interface/InterfaceHandler.cpp
@@ -81,7 +81,6 @@ string InterfaceHandler::abiInterface(ContractDefinition const& _contractDef)
solAssert(!!externalFunctionType, "");
Json::Value method;
method["type"] = "fallback";
- method["constant"] = externalFunctionType->isConstant();
method["payable"] = externalFunctionType->isPayable();
abi.append(method);
}