diff options
author | Gav Wood <g@ethdev.com> | 2015-04-21 23:32:01 +0800 |
---|---|---|
committer | Gav Wood <g@ethdev.com> | 2015-04-21 23:32:01 +0800 |
commit | 5f6a396765c722eca567cee930bc7621a6a20807 (patch) | |
tree | 43232e413dd1a72f85199498680fce2af7804129 /AST.h | |
parent | 8cd5eed17dce30d704ca7187e350e588d896c658 (diff) | |
parent | 8125f93b12243836a3c2edea09715a58d1cc1764 (diff) | |
download | dexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.tar.gz dexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.tar.zst dexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.zip |
Merge pull request #1699 from chriseth/sol_fix_contractTypesAsArguments
Fix for Contract and Enum types as external function arguments.
Diffstat (limited to 'AST.h')
-rw-r--r-- | AST.h | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -143,8 +143,8 @@ public: ASTString const& getName() const { return *m_name; } Visibility getVisibility() const { return m_visibility == Visibility::Default ? getDefaultVisibility() : m_visibility; } bool isPublic() const { return getVisibility() >= Visibility::Public; } - bool isVisibleInContract() const { return getVisibility() != Visibility::External; } - virtual bool isVisibleInDerivedContracts() const { return isVisibleInContract() && getVisibility() >= Visibility::Internal; } + virtual bool isVisibleInContract() const { return getVisibility() != Visibility::External; } + bool isVisibleInDerivedContracts() const { return isVisibleInContract() && getVisibility() >= Visibility::Internal; } /// @returns the scope this declaration resides in. Can be nullptr if it is the global scope. /// Available only after name and type resolution step. @@ -156,7 +156,7 @@ public: /// contract types. virtual TypePointer getType(ContractDefinition const* m_currentContract = nullptr) const = 0; virtual bool isLValue() const { return false; } - virtual bool isPartOfExternalInterface() const { return false; }; + virtual bool isPartOfExternalInterface() const { return false; } protected: virtual Visibility getDefaultVisibility() const { return Visibility::Public; } @@ -443,10 +443,9 @@ public: ASTPointer<ParameterList> const& getReturnParameterList() const { return m_returnParameters; } Block const& getBody() const { return *m_body; } - virtual bool isVisibleInDerivedContracts() const override + virtual bool isVisibleInContract() const override { - return !isConstructor() && !getName().empty() && isVisibleInContract() && - getVisibility() >= Visibility::Internal; + return Declaration::isVisibleInContract() && !isConstructor() && !getName().empty(); } virtual TypePointer getType(ContractDefinition const*) const override; virtual bool isPartOfExternalInterface() const override { return isPublic() && !m_isConstructor && !getName().empty(); } |