mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Return the last contract by default.
This commit is contained in:
parent
5a1a83ff42
commit
a98afc8eaa
@ -234,9 +234,13 @@ CompilerStack::Contract const& CompilerStack::getContract(string const& _contrac
|
||||
{
|
||||
if (m_contracts.empty())
|
||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("No compiled contracts found."));
|
||||
string contractName = _contractName;
|
||||
if (_contractName.empty())
|
||||
return m_contracts.begin()->second;
|
||||
auto it = m_contracts.find(_contractName);
|
||||
// try to find the "last contract"
|
||||
for (ASTPointer<ASTNode> const& node: m_sourceOrder.back()->ast->getNodes())
|
||||
if (auto contract = dynamic_cast<ContractDefinition const*>(node.get()))
|
||||
contractName = contract->getName();
|
||||
auto it = m_contracts.find(contractName);
|
||||
if (it == m_contracts.end())
|
||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Contract " + _contractName + " not found."));
|
||||
return it->second;
|
||||
|
Loading…
Reference in New Issue
Block a user