aboutsummaryrefslogtreecommitdiffstats
path: root/Types.h
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2014-12-05 02:38:24 +0800
committerChristian <c@ethdev.com>2014-12-08 19:39:29 +0800
commit57e6827cb57708ed8f687bf9b0a304b1481cf742 (patch)
treea84fb74e102588207cf1439bd0be901087d63b7a /Types.h
parent260a1529a758fb7b75840e05d8c0be18975ff3b2 (diff)
downloaddexon-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.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/Types.h b/Types.h
index b655f9e0..8e2f4803 100644
--- a/Types.h
+++ b/Types.h
@@ -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),