Merge pull request #2910 from ethereum/fallback-restrict-external

Force fallback to be external (experimental 0.5.0 change)
This commit is contained in:
chriseth
2017-09-18 16:38:55 +02:00
committed by GitHub
3 changed files with 39 additions and 1 deletions
+5
View File
@@ -120,6 +120,11 @@ bool TypeChecker::visit(ContractDefinition const& _contract)
m_errorReporter.typeError(fallbackFunction->parameterList().location(), "Fallback function cannot take parameters.");
if (!fallbackFunction->returnParameters().empty())
m_errorReporter.typeError(fallbackFunction->returnParameterList()->location(), "Fallback function cannot return values.");
if (
_contract.sourceUnit().annotation().experimentalFeatures.count(ExperimentalFeature::V050) &&
fallbackFunction->visibility() != FunctionDefinition::Visibility::External
)
m_errorReporter.typeError(fallbackFunction->location(), "Fallback function must be defined as \"external\".");
}
}
}