Simplify Type::userDefinedOperator function

This commit is contained in:
wechman
2022-09-28 13:07:58 +02:00
parent e3f5c4c1b5
commit b860561814
3 changed files with 66 additions and 26 deletions
-6
View File
@@ -404,14 +404,8 @@ Result<FunctionDefinition const*> Type::userDefinedOperator(Token _token, ASTNod
);
solAssert(functionType && !functionType->parameterTypes().empty());
Type const* expectedReturnType =
TokenTraits::isCompareOp(_token) ?
TypeProvider::boolean() : functionType->parameterTypes().front();
if (
isImplicitlyConvertibleTo(*functionType->parameterTypes().front()) &&
function.returnParameterList()->parameters().size() == 1 &&
function.returnParameterList()->parameters().front()->type()->isImplicitlyConvertibleTo(*expectedReturnType) &&
(
(_unaryOperation && function.parameterList().parameters().size() == 1) ||
(!_unaryOperation && function.parameterList().parameters().size() == 2)