From f3e591eedd19b181e71682c8dd5d032b52cdced8 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 14 Jul 2017 01:17:52 +0200 Subject: Add template for merging sets --- libdevcore/CommonData.h | 6 ++++++ libsolidity/ast/AST.cpp | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index 4297f606..ab4bfe68 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -166,6 +166,12 @@ template std::vector& operator+=(std::vector& _a, U con _a.push_back(i); return _a; } +/// Concatenate the contents of a container onto a set +template std::set& operator+=(std::set& _a, U const& _b) +{ + _a.insert(_b.begin(), _b.end()); + return _a; +} /// Concatenate two vectors of elements. template inline std::vector operator+(std::vector const& _a, std::vector const& _b) diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index f4ab6491..ebc8bd48 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -95,10 +95,7 @@ set SourceUnit::referencedSourceUnits(bool _recurse, set referencedSourceUnits = sourceUnit->referencedSourceUnits(true, _skipList); - sourceUnits.insert(referencedSourceUnits.begin(), referencedSourceUnits.end()); - } + sourceUnits += sourceUnit->referencedSourceUnits(true, _skipList); } } return sourceUnits; -- cgit