Refactoring to allow multi-variable declarations.

This commit is contained in:
chriseth
2015-10-08 18:25:44 +02:00
parent 23865e3929
commit b9a166061b
7 changed files with 120 additions and 55 deletions
+6 -3
View File
@@ -623,10 +623,13 @@ bool Compiler::visit(VariableDeclarationStatement const& _variableDeclarationSta
{
StackHeightChecker checker(m_context);
CompilerContext::LocationSetter locationSetter(m_context, _variableDeclarationStatement);
if (Expression const* expression = _variableDeclarationStatement.expression())
solAssert(_variableDeclarationStatement.declarations().size() == 1, "To be implemented.");
solAssert(!!_variableDeclarationStatement.declarations().front(), "");
VariableDeclaration const& varDecl = *_variableDeclarationStatement.declarations().front();
if (Expression const* expression = _variableDeclarationStatement.initialValue())
{
compileExpression(*expression, _variableDeclarationStatement.declaration().annotation().type);
CompilerUtils(m_context).moveToStackVariable(_variableDeclarationStatement.declaration());
compileExpression(*expression, varDecl.annotation().type);
CompilerUtils(m_context).moveToStackVariable(varDecl);
}
checker.check();
return false;