diff options
author | Christian <c@ethdev.com> | 2014-12-05 02:38:24 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2014-12-08 19:39:29 +0800 |
commit | 57e6827cb57708ed8f687bf9b0a304b1481cf742 (patch) | |
tree | a84fb74e102588207cf1439bd0be901087d63b7a /Types.h | |
parent | 260a1529a758fb7b75840e05d8c0be18975ff3b2 (diff) | |
download | dexon-solidity-57e6827cb57708ed8f687bf9b0a304b1481cf742.tar.gz dexon-solidity-57e6827cb57708ed8f687bf9b0a304b1481cf742.tar.zst dexon-solidity-57e6827cb57708ed8f687bf9b0a304b1481cf742.zip |
Calling functions of other contracts.
Diffstat (limited to 'Types.h')
-rw-r--r-- | Types.h | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -214,10 +214,17 @@ public: virtual bool isExplicitlyConvertibleTo(Type const& _convertTo) const override; virtual bool operator==(Type const& _other) const override; virtual u256 getStorageSize() const override; + virtual bool isValueType() const override { return true; } virtual std::string toString() const override; + virtual MemberList const& getMembers() const override; + + unsigned getFunctionIndex(std::string const& _functionName) const; + private: ContractDefinition const& m_contract; + /// List of member types, will be lazy-initialized because of recursive references. + mutable std::unique_ptr<MemberList> m_members; }; /** @@ -263,7 +270,7 @@ public: enum class Location { INTERNAL, EXTERNAL, SEND, SHA3, SUICIDE, ECRECOVER, SHA256, RIPEMD160 }; virtual Category getCategory() const override { return Category::FUNCTION; } - explicit FunctionType(FunctionDefinition const& _function); + explicit FunctionType(FunctionDefinition const& _function, bool _isInternal = true); FunctionType(TypePointers const& _parameterTypes, TypePointers const& _returnParameterTypes, Location _location = Location::INTERNAL): m_parameterTypes(_parameterTypes), m_returnParameterTypes(_returnParameterTypes), |