diff options
-rw-r--r-- | libsolidity/inlineasm/AsmPrinter.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libsolidity/inlineasm/AsmPrinter.cpp b/libsolidity/inlineasm/AsmPrinter.cpp index 94829371..f3b66aee 100644 --- a/libsolidity/inlineasm/AsmPrinter.cpp +++ b/libsolidity/inlineasm/AsmPrinter.cpp @@ -119,14 +119,22 @@ string AsmPrinter::operator()(assembly::VariableDeclaration const& _variableDecl string AsmPrinter::operator()(assembly::FunctionDefinition const& _functionDefinition) { string out = "function " + _functionDefinition.name + "("; - for (auto const& argument: _functionDefinition.arguments) - out += argument.name + appendTypeName(argument.type) + ","; + out += boost::algorithm::join( + _functionDefinition.arguments | boost::adaptors::transformed( + [this](TypedName argument) { return argument.name + appendTypeName(argument.type); } + ), + ", " + ); out += ")"; if (!_functionDefinition.returns.empty()) { out += " -> "; - for (auto const& argument: _functionDefinition.returns) - out += argument.name + appendTypeName(argument.type) + ","; + out += boost::algorithm::join( + _functionDefinition.returns | boost::adaptors::transformed( + [this](TypedName argument) { return argument.name + appendTypeName(argument.type); } + ), + ", " + ); } return out + "\n" + (*this)(_functionDefinition.body); |