diff options
author | chriseth <chris@ethereum.org> | 2017-01-18 21:28:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-18 21:28:00 +0800 |
commit | 005e1908854fe26611a175640fad87b430609d16 (patch) | |
tree | 7a9f257478ce326508dd56d42fe9dfd8a7d998eb /libsolidity/codegen | |
parent | 4f4963131bd969fa063a3aad980139dad2034087 (diff) | |
parent | 94b092d87c051e8846f5d61eaa1a4581b6588c71 (diff) | |
download | dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar.gz dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar.bz2 dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar.lz dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar.xz dexon-solidity-005e1908854fe26611a175640fad87b430609d16.tar.zst dexon-solidity-005e1908854fe26611a175640fad87b430609d16.zip |
Merge pull request #1397 from roadriverrail/contract_collision
Error out when contracts collide on name
Diffstat (limited to 'libsolidity/codegen')
-rw-r--r-- | libsolidity/codegen/ContractCompiler.cpp | 2 | ||||
-rw-r--r-- | libsolidity/codegen/ExpressionCompiler.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/libsolidity/codegen/ContractCompiler.cpp b/libsolidity/codegen/ContractCompiler.cpp index a0f196bc..fa77c1aa 100644 --- a/libsolidity/codegen/ContractCompiler.cpp +++ b/libsolidity/codegen/ContractCompiler.cpp @@ -575,7 +575,7 @@ bool ContractCompiler::visit(InlineAssembly const& _inlineAssembly) else if (auto contract = dynamic_cast<ContractDefinition const*>(decl)) { solAssert(contract->isLibrary(), ""); - _assembly.appendLibraryAddress(contract->name()); + _assembly.appendLibraryAddress(contract->fullyQualifiedName()); } else solAssert(false, "Invalid declaration type."); diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp index 3922da88..37bd1458 100644 --- a/libsolidity/codegen/ExpressionCompiler.cpp +++ b/libsolidity/codegen/ExpressionCompiler.cpp @@ -892,7 +892,7 @@ bool ExpressionCompiler::visit(MemberAccess const& _memberAccess) solAssert(funType->location() == FunctionType::Location::DelegateCall, ""); auto contract = dynamic_cast<ContractDefinition const*>(funType->declaration().scope()); solAssert(contract && contract->isLibrary(), ""); - m_context.appendLibraryAddress(contract->name()); + m_context.appendLibraryAddress(contract->fullyQualifiedName()); m_context << funType->externalIdentifier(); utils().moveIntoStack(funType->selfType()->sizeOnStack(), 2); } @@ -1270,7 +1270,7 @@ void ExpressionCompiler::endVisit(Identifier const& _identifier) else if (auto contract = dynamic_cast<ContractDefinition const*>(declaration)) { if (contract->isLibrary()) - m_context.appendLibraryAddress(contract->name()); + m_context.appendLibraryAddress(contract->fullyQualifiedName()); } else if (dynamic_cast<EventDefinition const*>(declaration)) { |