aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/ViewPureChecker.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-09-01 18:31:24 +0800
committerchriseth <chris@ethereum.org>2017-09-06 19:52:29 +0800
commitc83768c4260979b6d30185ef19352d27b161c3b0 (patch)
tree6549b555f1fbfbcae0f664a81b52aee841048a41 /libsolidity/analysis/ViewPureChecker.cpp
parent1a1db1ec963935bffcabd6115cf99d04fd1d633b (diff)
downloaddexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.tar.gz
dexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.tar.zst
dexon-solidity-c83768c4260979b6d30185ef19352d27b161c3b0.zip
Fix tests
Diffstat (limited to 'libsolidity/analysis/ViewPureChecker.cpp')
-rw-r--r--libsolidity/analysis/ViewPureChecker.cpp13
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)