diff options
author | Christian <c@ethdev.com> | 2015-01-20 02:18:34 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2015-01-20 06:35:04 +0800 |
commit | 6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9 (patch) | |
tree | 0cedcacb974cd0d7f15734bccde634e76c47a565 /Types.h | |
parent | 4d833bc86bf10a685a8b5d72e90c49a24a33f8b3 (diff) | |
download | dexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.tar.gz dexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.tar.zst dexon-solidity-6e111d5d1da2a0ae397fa2bd846d13132cdd6dd9.zip |
Explicit calls to base class function.
Diffstat (limited to 'Types.h')
-rw-r--r-- | Types.h | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -442,7 +442,8 @@ class TypeType: public Type { public: virtual Category getCategory() const override { return Category::TYPE; } - TypeType(TypePointer const& _actualType): m_actualType(_actualType) {} + TypeType(TypePointer const& _actualType, ContractDefinition const* _currentContract = nullptr): + m_actualType(_actualType), m_currentContract(_currentContract) {} TypePointer const& getActualType() const { return m_actualType; } virtual TypePointer binaryOperatorResult(Token::Value, TypePointer const&) const override { return TypePointer(); } @@ -451,9 +452,14 @@ public: virtual u256 getStorageSize() const override { BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Storage size of non-storable type type requested.")); } virtual bool canLiveOutsideStorage() const override { return false; } virtual std::string toString() const override { return "type(" + m_actualType->toString() + ")"; } + virtual MemberList const& getMembers() const override; private: TypePointer m_actualType; + /// Context in which this type is used (influences visibility etc.), can be nullptr. + ContractDefinition const* m_currentContract; + /// List of member types, will be lazy-initialized because of recursive references. + mutable std::unique_ptr<MemberList> m_members; }; |