diff options
author | chriseth <chris@ethereum.org> | 2017-09-01 18:31:24 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2017-09-06 19:52:29 +0800 |
commit | c83768c4260979b6d30185ef19352d27b161c3b0 (patch) | |
tree | 6549b555f1fbfbcae0f664a81b52aee841048a41 /libsolidity/analysis | |
parent | 1a1db1ec963935bffcabd6115cf99d04fd1d633b (diff) | |
download | dexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.tar.gz dexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.tar.zst dexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.zip |
Fix tests
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r-- | libsolidity/analysis/ViewPureChecker.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/libsolidity/analysis/ViewPureChecker.cpp b/libsolidity/analysis/ViewPureChecker.cpp index e5b433c2..705d61e8 100644 --- a/libsolidity/analysis/ViewPureChecker.cpp +++ b/libsolidity/analysis/ViewPureChecker.cpp @@ -292,11 +292,14 @@ void ViewPureChecker::endVisit(MemberAccess const& _memberAccess) void ViewPureChecker::endVisit(IndexAccess const& _indexAccess) { - solAssert(_indexAccess.indexExpression(), ""); - - bool writes = _indexAccess.annotation().lValueRequested; - if (_indexAccess.baseExpression().annotation().type->dataStoredIn(DataLocation::Storage)) - reportMutability(writes ? StateMutability::NonPayable : StateMutability::View, _indexAccess.location()); + if (!_indexAccess.indexExpression()) + solAssert(_indexAccess.annotation().type->category() == Type::Category::TypeType, ""); + else + { + bool writes = _indexAccess.annotation().lValueRequested; + if (_indexAccess.baseExpression().annotation().type->dataStoredIn(DataLocation::Storage)) + reportMutability(writes ? StateMutability::NonPayable : StateMutability::View, _indexAccess.location()); + } } void ViewPureChecker::endVisit(ModifierInvocation const& _modifier) |