From 15b4d4def23bcf0feb93c67dccc137baa59d5102 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 5 May 2017 18:35:40 +0100 Subject: Support multiple variables in a variable declaration in inline assembly --- libsolidity/inlineasm/AsmPrinter.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'libsolidity/inlineasm/AsmPrinter.cpp') diff --git a/libsolidity/inlineasm/AsmPrinter.cpp b/libsolidity/inlineasm/AsmPrinter.cpp index 636e61b8..845aefb9 100644 --- a/libsolidity/inlineasm/AsmPrinter.cpp +++ b/libsolidity/inlineasm/AsmPrinter.cpp @@ -121,7 +121,21 @@ string AsmPrinter::operator()(assembly::FunctionalAssignment const& _functionalA string AsmPrinter::operator()(assembly::VariableDeclaration const& _variableDeclaration) { - return "let " + _variableDeclaration.variable.name + appendTypeName(_variableDeclaration.variable.type) + " := " + boost::apply_visitor(*this, *_variableDeclaration.value); + string out = "let "; + out += boost::algorithm::join( + _variableDeclaration.variables | boost::adaptors::transformed( + [this](TypedName variable) { return variable.name + appendTypeName(variable.type); } + ), + ", " + ); + out += " := "; + out += boost::algorithm::join( + _variableDeclaration.values | boost::adaptors::transformed( + [this](Statement statement) { return boost::apply_visitor(*this, statement); } + ), + ", " + ); + return out; } string AsmPrinter::operator()(assembly::FunctionDefinition const& _functionDefinition) -- cgit v1.2.3