diff options
author | chriseth <c@ethdev.com> | 2015-07-16 07:06:19 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-07-16 07:10:09 +0800 |
commit | a2796c3d15593d9744433dbfb35d166c07e3dec6 (patch) | |
tree | e51e8932396b808915468fc09f6889174a8b7e96 /Types.h | |
parent | d747f34466ed6b3f3be0ea0c0d5278a7670e4d57 (diff) | |
download | dexon-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.h | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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. |