aboutsummaryrefslogtreecommitdiffstats
path: root/Parser.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-04-16 06:06:57 +0800
committerchriseth <c@ethdev.com>2015-04-16 06:09:28 +0800
commit6e5de4832da7a3c2fdbc87b71523ac671083d9c0 (patch)
tree6bd30af9e9ccf2130cdb2ecad40466f0f88bdce7 /Parser.cpp
parent820239a73c08ceb359e5d7dda9162b7e2f0fcaed (diff)
downloaddexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar.gz
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar.bz2
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar.lz
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar.xz
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.tar.zst
dexon-solidity-6e5de4832da7a3c2fdbc87b71523ac671083d9c0.zip
Bugfixes concerning variable declarations.
Fixes #1637
Diffstat (limited to 'Parser.cpp')
-rw-r--r--Parser.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/Parser.cpp b/Parser.cpp
index 5c7676df..43571314 100644
--- a/Parser.cpp
+++ b/Parser.cpp
@@ -472,17 +472,18 @@ ASTPointer<TypeName> Parser::parseTypeName(bool _allowVar)
else
BOOST_THROW_EXCEPTION(createParserError("Expected type name"));
- // Parse "[...]" postfixes for arrays.
- while (m_scanner->getCurrentToken() == Token::LBrack)
- {
- m_scanner->next();
- ASTPointer<Expression> length;
- if (m_scanner->getCurrentToken() != Token::RBrack)
- length = parseExpression();
- nodeFactory.markEndPosition();
- expectToken(Token::RBrack);
- type = nodeFactory.createNode<ArrayTypeName>(type, length);
- }
+ if (type)
+ // Parse "[...]" postfixes for arrays.
+ while (m_scanner->getCurrentToken() == Token::LBrack)
+ {
+ m_scanner->next();
+ ASTPointer<Expression> length;
+ if (m_scanner->getCurrentToken() != Token::RBrack)
+ length = parseExpression();
+ nodeFactory.markEndPosition();
+ expectToken(Token::RBrack);
+ type = nodeFactory.createNode<ArrayTypeName>(type, length);
+ }
return type;
}