aboutsummaryrefslogtreecommitdiffstats
path: root/Types.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-07-16 07:06:19 +0800
committerchriseth <c@ethdev.com>2015-07-16 07:10:09 +0800
commita2796c3d15593d9744433dbfb35d166c07e3dec6 (patch)
treee51e8932396b808915468fc09f6889174a8b7e96 /Types.h
parentd747f34466ed6b3f3be0ea0c0d5278a7670e4d57 (diff)
downloaddexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar.gz
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar.bz2
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar.lz
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar.xz
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.tar.zst
dexon-solidity-a2796c3d15593d9744433dbfb35d166c07e3dec6.zip
Allow structs containing mappings in memory.
Diffstat (limited to 'Types.h')
-rw-r--r--Types.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/Types.h b/Types.h
index 8bdfc5e6..f18855b2 100644
--- a/Types.h
+++ b/Types.h
@@ -574,14 +574,14 @@ class StructType: public ReferenceType
{
public:
virtual Category getCategory() const override { return Category::Struct; }
- explicit StructType(StructDefinition const& _struct):
- ReferenceType(DataLocation::Storage), m_struct(_struct) {}
+ explicit StructType(StructDefinition const& _struct, DataLocation _location = DataLocation::Storage):
+ ReferenceType(_location), m_struct(_struct) {}
virtual bool isImplicitlyConvertibleTo(const Type& _convertTo) const override;
virtual bool operator==(Type const& _other) const override;
virtual unsigned getCalldataEncodedSize(bool _padded) const override;
u256 memorySize() const;
virtual u256 getStorageSize() const override;
- virtual bool canLiveOutsideStorage() const override;
+ virtual bool canLiveOutsideStorage() const override { return true; }
virtual std::string toString(bool _short) const override;
virtual MemberList const& getMembers() const override;
@@ -597,6 +597,9 @@ public:
StructDefinition const& structDefinition() const { return m_struct; }
+ /// @returns the set of all members that are removed in the memory version (typically mappings).
+ std::set<std::string> membersMissingInMemory() const;
+
private:
StructDefinition const& m_struct;
/// List of member types, will be lazy-initialized because of recursive references.