diff options
author | chriseth <chris@ethereum.org> | 2018-05-15 22:59:48 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-15 22:59:48 +0800 |
commit | 2ba0002998d12ea412f17d55b643ec85c02e6a30 (patch) | |
tree | c67243148b1b06eb6b8617fc344d0bc422874fa9 /libsolidity/analysis | |
parent | 007ecc849c917cdb5b2feaa20bbab84e0fe79104 (diff) | |
parent | dac0029d16ffe31fba2e6241f99893ea9a26926e (diff) | |
download | dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar.gz dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar.bz2 dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar.lz dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar.xz dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.tar.zst dexon-solidity-2ba0002998d12ea412f17d55b643ec85c02e6a30.zip |
Merge pull request #4139 from ethereum/abiEncodeIsPure
ABI encoding functions are pure and should be usable in constants.
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r-- | libsolidity/analysis/TypeChecker.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index a222bdf0..e8694e88 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -2093,6 +2093,9 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess) if (auto tt = dynamic_cast<TypeType const*>(exprType.get())) if (tt->actualType()->category() == Type::Category::Enum) annotation.isPure = true; + if (auto magicType = dynamic_cast<MagicType const*>(exprType.get())) + if (magicType->kind() == MagicType::Kind::ABI) + annotation.isPure = true; return false; } |