diff options
author | chriseth <chris@ethereum.org> | 2018-05-09 20:55:36 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-05-09 20:55:36 +0800 |
commit | fe8f38a7a47241f4f910ef229e6655de7648c98b (patch) | |
tree | c55b35a320499de1e55fe4a77b8cda025323a3fe /libsolidity/parsing | |
parent | be54f4819713ce5737a271bbdc43ac0a73a8e456 (diff) | |
download | dexon-solidity-fe8f38a7a47241f4f910ef229e6655de7648c98b.tar.gz dexon-solidity-fe8f38a7a47241f4f910ef229e6655de7648c98b.tar.zst dexon-solidity-fe8f38a7a47241f4f910ef229e6655de7648c98b.zip |
Assert integrity of empty IndexAccessPath structure.
Diffstat (limited to 'libsolidity/parsing')
-rw-r--r-- | libsolidity/parsing/Parser.cpp | 10 | ||||
-rw-r--r-- | libsolidity/parsing/Parser.h | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp index 38ef32d5..d1be13a5 100644 --- a/libsolidity/parsing/Parser.cpp +++ b/libsolidity/parsing/Parser.cpp @@ -1098,6 +1098,16 @@ ASTPointer<Statement> Parser::parseSimpleStatement(ASTPointer<ASTString> const& } } +bool Parser::IndexAccessedPath::empty() const +{ + if (!indices.empty()) + { + solAssert(!path.empty(), ""); + } + return path.empty() && indices.empty(); +} + + pair<Parser::LookAheadInfo, Parser::IndexAccessedPath> Parser::tryParseIndexAccessedPath() { // These two cases are very hard to distinguish: diff --git a/libsolidity/parsing/Parser.h b/libsolidity/parsing/Parser.h index 902312e8..08653364 100644 --- a/libsolidity/parsing/Parser.h +++ b/libsolidity/parsing/Parser.h @@ -151,7 +151,7 @@ private: { std::vector<ASTPointer<PrimaryExpression>> path; std::vector<std::pair<ASTPointer<Expression>, SourceLocation>> indices; - bool empty() const { return path.empty() && indices.empty(); } + bool empty() const; }; std::pair<LookAheadInfo, IndexAccessedPath> tryParseIndexAccessedPath(); |