mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Equality operators for ModelCheckerSettings and ImportRemapper
This commit is contained in:
parent
d781955b26
commit
7d16c7b127
@ -44,6 +44,9 @@ struct ModelCheckerContracts
|
|||||||
return has(_source) && contracts.at(_source).count(_contract);
|
return has(_source) && contracts.at(_source).count(_contract);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool operator!=(ModelCheckerContracts const& _other) const noexcept { return !(*this == _other); }
|
||||||
|
bool operator==(ModelCheckerContracts const& _other) const noexcept { return contracts == _other.contracts; }
|
||||||
|
|
||||||
/// Represents which contracts should be analyzed by the SMTChecker
|
/// Represents which contracts should be analyzed by the SMTChecker
|
||||||
/// as the most derived.
|
/// as the most derived.
|
||||||
/// The key is the source file. If the map is empty, all sources must be analyzed.
|
/// The key is the source file. If the map is empty, all sources must be analyzed.
|
||||||
@ -79,6 +82,9 @@ struct ModelCheckerEngine
|
|||||||
return engineMap.at(_engine);
|
return engineMap.at(_engine);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool operator!=(ModelCheckerEngine const& _other) const noexcept { return !(*this == _other); }
|
||||||
|
bool operator==(ModelCheckerEngine const& _other) const noexcept { return bmc == _other.bmc && chc == _other.chc; }
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class VerificationTargetType { ConstantCondition, Underflow, Overflow, UnderOverflow, DivByZero, Balance, Assert, PopEmptyArray, OutOfBounds };
|
enum class VerificationTargetType { ConstantCondition, Underflow, Overflow, UnderOverflow, DivByZero, Balance, Assert, PopEmptyArray, OutOfBounds };
|
||||||
@ -97,6 +103,9 @@ struct ModelCheckerTargets
|
|||||||
|
|
||||||
static std::map<std::string, VerificationTargetType> const targetStrings;
|
static std::map<std::string, VerificationTargetType> const targetStrings;
|
||||||
|
|
||||||
|
bool operator!=(ModelCheckerTargets const& _other) const noexcept { return !(*this == _other); }
|
||||||
|
bool operator==(ModelCheckerTargets const& _other) const noexcept { return targets == _other.targets; }
|
||||||
|
|
||||||
std::set<VerificationTargetType> targets;
|
std::set<VerificationTargetType> targets;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -106,6 +115,16 @@ struct ModelCheckerSettings
|
|||||||
ModelCheckerEngine engine = ModelCheckerEngine::None();
|
ModelCheckerEngine engine = ModelCheckerEngine::None();
|
||||||
ModelCheckerTargets targets = ModelCheckerTargets::Default();
|
ModelCheckerTargets targets = ModelCheckerTargets::Default();
|
||||||
std::optional<unsigned> timeout;
|
std::optional<unsigned> timeout;
|
||||||
|
|
||||||
|
bool operator!=(ModelCheckerSettings const& _other) const noexcept { return !(*this == _other); }
|
||||||
|
bool operator==(ModelCheckerSettings const& _other) const noexcept
|
||||||
|
{
|
||||||
|
return
|
||||||
|
contracts == _other.contracts &&
|
||||||
|
engine == _other.engine &&
|
||||||
|
targets == _other.targets &&
|
||||||
|
timeout == _other.timeout;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,15 @@ class ImportRemapper
|
|||||||
public:
|
public:
|
||||||
struct Remapping
|
struct Remapping
|
||||||
{
|
{
|
||||||
|
bool operator!=(Remapping const& _other) const noexcept { return !(*this == _other); }
|
||||||
|
bool operator==(Remapping const& _other) const noexcept
|
||||||
|
{
|
||||||
|
return
|
||||||
|
context == _other.context &&
|
||||||
|
prefix == _other.prefix &&
|
||||||
|
target == _other.target;
|
||||||
|
}
|
||||||
|
|
||||||
std::string context;
|
std::string context;
|
||||||
std::string prefix;
|
std::string prefix;
|
||||||
std::string target;
|
std::string target;
|
||||||
|
Loading…
Reference in New Issue
Block a user