diff options
author | chriseth <c@ethdev.com> | 2017-03-06 21:12:20 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2017-03-06 21:12:42 +0800 |
commit | f300bdb020ca55b05f1725dc2157fb636c1e4801 (patch) | |
tree | 25bbe9e6a2e8f9196236b3650939f2ddec71cf63 /libsolidity/ast | |
parent | ca4e2933dd9b149653070815dd6255e3b8735d6d (diff) | |
download | dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar.gz dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar.bz2 dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar.lz dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar.xz dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.tar.zst dexon-solidity-f300bdb020ca55b05f1725dc2157fb636c1e4801.zip |
Move public constructor property into AST itself.
Diffstat (limited to 'libsolidity/ast')
-rw-r--r-- | libsolidity/ast/AST.cpp | 6 | ||||
-rw-r--r-- | libsolidity/ast/AST.h | 2 | ||||
-rw-r--r-- | libsolidity/ast/ASTAnnotations.h | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index 8d137bac..03112d2d 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -132,6 +132,12 @@ FunctionDefinition const* ContractDefinition::constructor() const return nullptr; } +bool ContractDefinition::constructorIsPublic() const +{ + FunctionDefinition const* f = constructor(); + return !f || f->isPublic(); +} + FunctionDefinition const* ContractDefinition::fallbackFunction() const { for (ContractDefinition const* contract: annotation().linearizedBaseContracts) diff --git a/libsolidity/ast/AST.h b/libsolidity/ast/AST.h index 743fdaa1..8031760d 100644 --- a/libsolidity/ast/AST.h +++ b/libsolidity/ast/AST.h @@ -356,6 +356,8 @@ public: /// Returns the constructor or nullptr if no constructor was specified. FunctionDefinition const* constructor() const; + /// @returns true iff the constructor of this contract is public (or non-existing). + bool constructorIsPublic() const; /// Returns the fallback function or nullptr if no fallback function was specified. FunctionDefinition const* fallbackFunction() const; diff --git a/libsolidity/ast/ASTAnnotations.h b/libsolidity/ast/ASTAnnotations.h index 61e97a55..9c4c3ae8 100644 --- a/libsolidity/ast/ASTAnnotations.h +++ b/libsolidity/ast/ASTAnnotations.h @@ -80,8 +80,6 @@ struct ContractDefinitionAnnotation: TypeDeclarationAnnotation, DocumentedAnnota { /// Whether all functions are implemented. bool isFullyImplemented = true; - /// Whether a public constructor (even the default one) is available. - bool hasPublicConstructor = true; /// List of all (direct and indirect) base contracts in order from derived to /// base, including the contract itself. std::vector<ContractDefinition const*> linearizedBaseContracts; |