aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-08-07 22:11:59 +0800
committerGitHub <noreply@github.com>2018-08-07 22:11:59 +0800
commitc61cc98d0da59155edc72a947dd8867b69cba20e (patch)
tree5adfca55bb9dccadba4efa9e1dbf9ab4e94e7f73
parenta765b5b31cb2c06a0f04204bd6d22a4238625d19 (diff)
parent133fd3d302595db327115e63e0292ff44d6dfd80 (diff)
downloaddexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar.gz
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar.bz2
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar.lz
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar.xz
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.tar.zst
dexon-solidity-c61cc98d0da59155edc72a947dd8867b69cba20e.zip
Merge pull request #4726 from ethereum/moveNothrow
Make MemberList nothrow move constructible.
-rw-r--r--libsolidity/ast/Types.cpp9
-rw-r--r--libsolidity/ast/Types.h4
2 files changed, 2 insertions, 11 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp
index eff31b8d..3eccc6d4 100644
--- a/libsolidity/ast/Types.cpp
+++ b/libsolidity/ast/Types.cpp
@@ -169,15 +169,6 @@ pair<u256, unsigned> const* StorageOffsets::offset(size_t _index) const
return nullptr;
}
-MemberList& MemberList::operator=(MemberList&& _other)
-{
- solAssert(&_other != this, "");
-
- m_memberTypes = move(_other.m_memberTypes);
- m_storageOffsets = move(_other.m_storageOffsets);
- return *this;
-}
-
void MemberList::combine(MemberList const & _other)
{
m_memberTypes += _other.m_memberTypes;
diff --git a/libsolidity/ast/Types.h b/libsolidity/ast/Types.h
index 89b8f170..09323d05 100644
--- a/libsolidity/ast/Types.h
+++ b/libsolidity/ast/Types.h
@@ -95,9 +95,7 @@ public:
using MemberMap = std::vector<Member>;
- MemberList() {}
explicit MemberList(MemberMap const& _members): m_memberTypes(_members) {}
- MemberList& operator=(MemberList&& _other);
void combine(MemberList const& _other);
TypePointer memberType(std::string const& _name) const
{
@@ -132,6 +130,8 @@ private:
mutable std::unique_ptr<StorageOffsets> m_storageOffsets;
};
+static_assert(std::is_nothrow_move_constructible<MemberList>::value, "MemberList should be noexcept move constructible");
+
/**
* Abstract base class that forms the root of the type hierarchy.
*/