Simplify target selection code

This commit is contained in:
Alex Beregszaszi 2017-11-22 13:35:01 +00:00
parent b2023196a2
commit 3576ccf5b3

View File

@ -161,20 +161,12 @@ bool isArtifactRequested(Json::Value const& _outputSelection, string const& _fil
for (auto const& file: { _file, string("*") }) for (auto const& file: { _file, string("*") })
if (_outputSelection.isMember(file) && _outputSelection[file].isObject()) if (_outputSelection.isMember(file) && _outputSelection[file].isObject())
{ {
if (_contract.empty()) /// For SourceUnit-level targets (such as AST) only allow empty name, otherwise
{ /// for Contract-level targets try both contract name and wildcard
/// Special case for SourceUnit-level targets (such as AST) vector<string> contracts{ _contract };
if ( if (!_contract.empty())
_outputSelection[file].isMember("") && contracts.push_back("*");
_outputSelection[file][""].isArray() && for (auto const& contract: contracts)
isArtifactRequested(_outputSelection[file][""], _artifact)
)
return true;
}
else
{
/// Regular case for Contract-level targets
for (auto const& contract: { _contract, string("*") })
if ( if (
_outputSelection[file].isMember(contract) && _outputSelection[file].isMember(contract) &&
_outputSelection[file][contract].isArray() && _outputSelection[file][contract].isArray() &&
@ -182,7 +174,6 @@ bool isArtifactRequested(Json::Value const& _outputSelection, string const& _fil
) )
return true; return true;
} }
}
return false; return false;
} }