diff options
author | chriseth <c@ethdev.com> | 2015-04-16 06:06:57 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-04-16 06:09:28 +0800 |
commit | 6e5de4832da7a3c2fdbc87b71523ac671083d9c0 (patch) | |
tree | 6bd30af9e9ccf2130cdb2ecad40466f0f88bdce7 /Parser.cpp | |
parent | 820239a73c08ceb359e5d7dda9162b7e2f0fcaed (diff) | |
download | dexon-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.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -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; } |