Disallow comparison operators on contracts

This commit is contained in:
Marenz
2022-08-18 17:56:22 +02:00
parent 777385f5d2
commit f426b5988e
12 changed files with 45 additions and 18 deletions
+5
View File
@@ -927,6 +927,11 @@ public:
BoolResult isImplicitlyConvertibleTo(Type const& _convertTo) const override;
/// Contracts can only be explicitly converted to address types and base contracts.
BoolResult isExplicitlyConvertibleTo(Type const& _convertTo) const override;
/// Contracts do not support any comparison operators
TypeResult binaryOperatorResult(Token, Type const*) const override
{
return TypeResult::err("No arithmetic or comparison operations are allowed on contract types. Consider converting to \"address\".");
}
TypeResult unaryOperatorResult(Token _operator) const override;
std::string richIdentifier() const override;
bool operator==(Type const& _other) const override;