aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2017-01-21 02:21:43 +0800
committerchriseth <c@ethdev.com>2017-01-21 02:22:39 +0800
commit0ef460461ac280a9f8086d62d831dc9f7d2f5319 (patch)
tree8dd8f0b6007ed7979f5190bce87f1918a8c0f205 /libsolidity/interface
parentdf4ef74199392e9b29823d68e6a58dabd490e037 (diff)
downloaddexon-solidity-0ef460461ac280a9f8086d62d831dc9f7d2f5319.tar.gz
dexon-solidity-0ef460461ac280a9f8086d62d831dc9f7d2f5319.tar.zst
dexon-solidity-0ef460461ac280a9f8086d62d831dc9f7d2f5319.zip
Check if constructor is public or not.
Diffstat (limited to 'libsolidity/interface')
-rw-r--r--libsolidity/interface/CompilerStack.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp
index 85ec0fb1..b26bd501 100644
--- a/libsolidity/interface/CompilerStack.cpp
+++ b/libsolidity/interface/CompilerStack.cpp
@@ -624,7 +624,11 @@ void CompilerStack::compileContract(
map<ContractDefinition const*, eth::Assembly const*>& _compiledContracts
)
{
- if (_compiledContracts.count(&_contract) || !_contract.annotation().isFullyImplemented)
+ if (
+ _compiledContracts.count(&_contract) ||
+ !_contract.annotation().isFullyImplemented ||
+ !_contract.annotation().hasPublicConstructor
+ )
return;
for (auto const* dependency: _contract.annotation().contractDependencies)
compileContract(*dependency, _compiledContracts);