diff options
author | chriseth <chris@ethereum.org> | 2018-11-26 19:34:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-26 19:34:43 +0800 |
commit | bc137c2eeb6920cf33eea1ceaab49df3dfddad07 (patch) | |
tree | 9060bcb1897956e25ba0341a3a6619906bc5d67a /libsolidity/analysis | |
parent | 9e0e1ee6c229cd904d87ff8c2aba8f56e9da4515 (diff) | |
parent | a781bda5958d2632306118965747fe79cc86f34d (diff) | |
download | dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar.gz dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar.bz2 dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar.lz dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar.xz dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.tar.zst dexon-solidity-bc137c2eeb6920cf33eea1ceaab49df3dfddad07.zip |
Merge pull request #5485 from ethereum/refactorCallableFunction
Refactor callable function
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 4e63875b..a6c23ada 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -400,42 +400,42 @@ void TypeChecker::checkContractIllegalOverrides(ContractDefinition const& _contr } } -void TypeChecker::checkFunctionOverride(FunctionDefinition const& function, FunctionDefinition const& super) +void TypeChecker::checkFunctionOverride(FunctionDefinition const& _function, FunctionDefinition const& _super) { - FunctionType functionType(function); - FunctionType superType(super); + FunctionType functionType(_function); + FunctionType superType(_super); if (!functionType.hasEqualParameterTypes(superType)) return; - if (!function.annotation().superFunction) - function.annotation().superFunction = &super; + if (!_function.annotation().superFunction) + _function.annotation().superFunction = &_super; - if (function.visibility() != super.visibility()) + if (_function.visibility() != _super.visibility()) { // visibility is enforced to be external in interfaces, but a contract can override that with public if ( - super.inContractKind() == ContractDefinition::ContractKind::Interface && - function.inContractKind() != ContractDefinition::ContractKind::Interface && - function.visibility() == FunctionDefinition::Visibility::Public + _super.inContractKind() == ContractDefinition::ContractKind::Interface && + _function.inContractKind() != ContractDefinition::ContractKind::Interface && + _function.visibility() == FunctionDefinition::Visibility::Public ) return; - overrideError(function, super, "Overriding function visibility differs."); + overrideError(_function, _super, "Overriding function visibility differs."); } - else if (function.stateMutability() != super.stateMutability()) + else if (_function.stateMutability() != _super.stateMutability()) overrideError( - function, - super, + _function, + _super, "Overriding function changes state mutability from \"" + - stateMutabilityToString(super.stateMutability()) + + stateMutabilityToString(_super.stateMutability()) + "\" to \"" + - stateMutabilityToString(function.stateMutability()) + + stateMutabilityToString(_function.stateMutability()) + "\"." ); else if (functionType != superType) - overrideError(function, super, "Overriding function return types differ."); + overrideError(_function, _super, "Overriding function return types differ."); } void TypeChecker::overrideError(FunctionDefinition const& function, FunctionDefinition const& super, string message) |