From f3913d699620d5c47b6a9f3d0c222ddcc10df44a Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 7 Oct 2015 12:09:07 +0200 Subject: [PATCH] Fix boost error. --- libsolidity/InterfaceHandler.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/libsolidity/InterfaceHandler.cpp b/libsolidity/InterfaceHandler.cpp index d23d82644..be15ae58a 100644 --- a/libsolidity/InterfaceHandler.cpp +++ b/libsolidity/InterfaceHandler.cpp @@ -1,8 +1,6 @@ #include -#include #include -#include #include #include using namespace std; @@ -111,15 +109,16 @@ string InterfaceHandler::abiInterface(ContractDefinition const& _contractDef) string InterfaceHandler::ABISolidityInterface(ContractDefinition const& _contractDef) { - using namespace boost::adaptors; - using namespace boost::algorithm; string ret = (_contractDef.isLibrary() ? "library " : "contract ") + _contractDef.name() + "{"; auto populateParameters = [](vector const& _paramNames, vector const& _paramTypes) { - return "(" + join(boost::irange(0, _paramNames.size()) | transformed([&](size_t _i) { - return _paramTypes[_i] + " " + _paramNames[_i]; - }), ",") + ")"; + string ret = "("; + for (size_t i = 0; i < _paramNames.size(); ++i) + ret += _paramTypes[i] + " " + _paramNames[i] + ","; + if (ret.size() != 1) + ret.pop_back(); + return ret + ")"; }; // If this is a library, include all its enum and struct types. Should be more intelligent // in the future and check what is actually used (it might even use types from other libraries @@ -135,10 +134,12 @@ string InterfaceHandler::ABISolidityInterface(ContractDefinition const& _contrac } for (auto const& enu: _contractDef.definedEnums()) { - ret += "enum " + enu->name() + "{" + - join(enu->members() | transformed([](ASTPointer const& _value) { - return _value->name(); - }), ",") + "}"; + ret += "enum " + enu->name() + "{"; + for (ASTPointer const& val: enu->members()) + ret += val->name() + ","; + if (ret.back() == ',') + ret.pop_back(); + ret += "}"; } } if (_contractDef.constructor())