diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 7095b88b0..15c4ef1eb 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -1815,7 +1815,7 @@ void TypeChecker::endVisit(BinaryOperation const& _operation) m_errorReporter.typeError( 2271_error, _operation.location(), - "Operator " + + "Binary operator " + string(TokenTraits::toString(_operation.getOperator())) + " not compatible with types " + leftType->humanReadableName() + @@ -1848,7 +1848,7 @@ void TypeChecker::endVisit(BinaryOperation const& _operation) m_errorReporter.typeError( 5653_error, _operation.location(), - "User defined operator " + + "User defined binary operator " + string(TokenTraits::toString(_operation.getOperator())) + " not compatible with types " + leftType->humanReadableName() + diff --git a/test/libsolidity/syntaxTests/abiEncoder/abi_encodeCall_tuple_from_invalid_operator.sol b/test/libsolidity/syntaxTests/abiEncoder/abi_encodeCall_tuple_from_invalid_operator.sol index cd98edf6c..b4c484b85 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/abi_encodeCall_tuple_from_invalid_operator.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/abi_encodeCall_tuple_from_invalid_operator.sol @@ -15,9 +15,9 @@ contract C { } } // ---- -// TypeError 2271: (284-299): Operator + not compatible with types tuple(int_const 1,int_const 1) and tuple(int_const 2,int_const 2). +// TypeError 2271: (284-299): Binary operator + not compatible with types tuple(int_const 1,int_const 1) and tuple(int_const 2,int_const 2). // TypeError 9062: (284-299): Expected an inline tuple, not an expression of a tuple type. -// TypeError 2271: (334-345): Operator / not compatible with types tuple() and tuple(). +// TypeError 2271: (334-345): Binary operator / not compatible with types tuple() and tuple(). // TypeError 9062: (334-345): Expected an inline tuple, not an expression of a tuple type. // TypeError 4907: (380-383): Unary operator ! cannot be applied to type tuple(). // TypeError 9062: (380-383): Expected an inline tuple, not an expression of a tuple type. diff --git a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol index 8087b6b33..8a535f628 100644 --- a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol +++ b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol @@ -19,9 +19,9 @@ contract C { } } // ---- -// TypeError 2271: (144-157): Operator != not compatible with types type(contract super C) and contract C. -// TypeError 2271: (167-180): Operator != not compatible with types contract C and type(contract super C). -// TypeError 2271: (254-264): Operator != not compatible with types type(contract super C) and contract C. -// TypeError 2271: (274-284): Operator != not compatible with types contract C and type(contract super C). -// TypeError 2271: (349-359): Operator != not compatible with types type(contract super C) and contract D. -// TypeError 2271: (369-379): Operator != not compatible with types contract D and type(contract super C). +// TypeError 2271: (144-157): Binary operator != not compatible with types type(contract super C) and contract C. +// TypeError 2271: (167-180): Binary operator != not compatible with types contract C and type(contract super C). +// TypeError 2271: (254-264): Binary operator != not compatible with types type(contract super C) and contract C. +// TypeError 2271: (274-284): Binary operator != not compatible with types contract C and type(contract super C). +// TypeError 2271: (349-359): Binary operator != not compatible with types type(contract super C) and contract D. +// TypeError 2271: (369-379): Binary operator != not compatible with types contract D and type(contract super C). diff --git a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_operators.sol b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_operators.sol index 045611306..284885f8c 100644 --- a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_operators.sol +++ b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_operators.sol @@ -30,25 +30,25 @@ contract C { } } // ---- -// TypeError 2271: (49-62): Operator << not compatible with types type(contract super C) and contract C. -// TypeError 2271: (72-85): Operator >> not compatible with types type(contract super C) and contract C. -// TypeError 2271: (95-107): Operator ^ not compatible with types type(contract super C) and contract C. -// TypeError 2271: (117-129): Operator | not compatible with types type(contract super C) and contract C. -// TypeError 2271: (139-151): Operator & not compatible with types type(contract super C) and contract C. -// TypeError 2271: (162-174): Operator * not compatible with types type(contract super C) and contract C. -// TypeError 2271: (184-196): Operator / not compatible with types type(contract super C) and contract C. -// TypeError 2271: (206-218): Operator % not compatible with types type(contract super C) and contract C. -// TypeError 2271: (228-240): Operator - not compatible with types type(contract super C) and contract C. -// TypeError 2271: (250-262): Operator + not compatible with types type(contract super C) and contract C. -// TypeError 2271: (272-285): Operator ** not compatible with types type(contract super C) and contract C. -// TypeError 2271: (296-309): Operator == not compatible with types type(contract super C) and contract C. -// TypeError 2271: (319-332): Operator != not compatible with types type(contract super C) and contract C. -// TypeError 2271: (342-355): Operator >= not compatible with types type(contract super C) and contract C. -// TypeError 2271: (365-378): Operator <= not compatible with types type(contract super C) and contract C. -// TypeError 2271: (388-400): Operator < not compatible with types type(contract super C) and contract C. -// TypeError 2271: (410-422): Operator > not compatible with types type(contract super C) and contract C. -// TypeError 2271: (433-446): Operator || not compatible with types type(contract super C) and contract C. -// TypeError 2271: (456-469): Operator && not compatible with types type(contract super C) and contract C. +// TypeError 2271: (49-62): Binary operator << not compatible with types type(contract super C) and contract C. +// TypeError 2271: (72-85): Binary operator >> not compatible with types type(contract super C) and contract C. +// TypeError 2271: (95-107): Binary operator ^ not compatible with types type(contract super C) and contract C. +// TypeError 2271: (117-129): Binary operator | not compatible with types type(contract super C) and contract C. +// TypeError 2271: (139-151): Binary operator & not compatible with types type(contract super C) and contract C. +// TypeError 2271: (162-174): Binary operator * not compatible with types type(contract super C) and contract C. +// TypeError 2271: (184-196): Binary operator / not compatible with types type(contract super C) and contract C. +// TypeError 2271: (206-218): Binary operator % not compatible with types type(contract super C) and contract C. +// TypeError 2271: (228-240): Binary operator - not compatible with types type(contract super C) and contract C. +// TypeError 2271: (250-262): Binary operator + not compatible with types type(contract super C) and contract C. +// TypeError 2271: (272-285): Binary operator ** not compatible with types type(contract super C) and contract C. +// TypeError 2271: (296-309): Binary operator == not compatible with types type(contract super C) and contract C. +// TypeError 2271: (319-332): Binary operator != not compatible with types type(contract super C) and contract C. +// TypeError 2271: (342-355): Binary operator >= not compatible with types type(contract super C) and contract C. +// TypeError 2271: (365-378): Binary operator <= not compatible with types type(contract super C) and contract C. +// TypeError 2271: (388-400): Binary operator < not compatible with types type(contract super C) and contract C. +// TypeError 2271: (410-422): Binary operator > not compatible with types type(contract super C) and contract C. +// TypeError 2271: (433-446): Binary operator || not compatible with types type(contract super C) and contract C. +// TypeError 2271: (456-469): Binary operator && not compatible with types type(contract super C) and contract C. // TypeError 4247: (480-485): Expression has to be an lvalue. // TypeError 7366: (480-493): Operator -= not compatible with types type(contract super C) and contract C. // TypeError 4247: (503-508): Expression has to be an lvalue. diff --git a/test/libsolidity/syntaxTests/errors/error_incompatible_binary_ops.sol b/test/libsolidity/syntaxTests/errors/error_incompatible_binary_ops.sol index 3f18bbf19..4e63419bf 100644 --- a/test/libsolidity/syntaxTests/errors/error_incompatible_binary_ops.sol +++ b/test/libsolidity/syntaxTests/errors/error_incompatible_binary_ops.sol @@ -27,21 +27,21 @@ contract C { } // ---- -// TypeError 2271: (86-116): Operator << not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (126-156): Operator >> not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (166-195): Operator ^ not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (205-234): Operator | not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (244-273): Operator & not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (284-313): Operator * not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (323-352): Operator / not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (362-391): Operator % not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (401-430): Operator + not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (440-469): Operator - not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (480-510): Operator == not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (520-550): Operator != not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (560-590): Operator >= not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (600-630): Operator <= not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (640-669): Operator < not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (679-708): Operator > not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (719-749): Operator || not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). -// TypeError 2271: (759-789): Operator && not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (86-116): Binary operator << not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (126-156): Binary operator >> not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (166-195): Binary operator ^ not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (205-234): Binary operator | not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (244-273): Binary operator & not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (284-313): Binary operator * not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (323-352): Binary operator / not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (362-391): Binary operator % not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (401-430): Binary operator + not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (440-469): Binary operator - not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (480-510): Binary operator == not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (520-550): Binary operator != not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (560-590): Binary operator >= not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (600-630): Binary operator <= not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (640-669): Binary operator < not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (679-708): Binary operator > not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (719-749): Binary operator || not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). +// TypeError 2271: (759-789): Binary operator && not compatible with types error MyCustomError(uint256,bool) and error MyCustomError(uint256,bool). diff --git a/test/libsolidity/syntaxTests/events/event_incompatible_binary_ops.sol b/test/libsolidity/syntaxTests/events/event_incompatible_binary_ops.sol index 1537f8edf..b51dc921c 100644 --- a/test/libsolidity/syntaxTests/events/event_incompatible_binary_ops.sol +++ b/test/libsolidity/syntaxTests/events/event_incompatible_binary_ops.sol @@ -26,21 +26,21 @@ contract C { } // ---- -// TypeError 2271: (83-113): Operator << not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (123-153): Operator >> not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (163-192): Operator ^ not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (202-231): Operator | not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (241-270): Operator & not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (281-310): Operator * not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (320-349): Operator / not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (359-388): Operator % not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (398-427): Operator + not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (437-466): Operator - not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (477-507): Operator == not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (517-547): Operator != not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (557-587): Operator >= not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (597-627): Operator <= not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (637-666): Operator < not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (676-705): Operator > not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (716-746): Operator || not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). -// TypeError 2271: (756-786): Operator && not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (83-113): Binary operator << not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (123-153): Binary operator >> not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (163-192): Binary operator ^ not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (202-231): Binary operator | not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (241-270): Binary operator & not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (281-310): Binary operator * not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (320-349): Binary operator / not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (359-388): Binary operator % not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (398-427): Binary operator + not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (437-466): Binary operator - not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (477-507): Binary operator == not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (517-547): Binary operator != not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (557-587): Binary operator >= not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (597-627): Binary operator <= not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (637-666): Binary operator < not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (676-705): Binary operator > not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (716-746): Binary operator || not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). +// TypeError 2271: (756-786): Binary operator && not compatible with types event MyCustomEvent(uint256) and event MyCustomEvent(uint256). diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_1.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_1.sol index 67911852f..3b7e0694e 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_1.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_1.sol @@ -4,4 +4,4 @@ contract C { } } // ---- -// TypeError 2271: (73-88): Operator > not compatible with types function () external returns (bool) and function () external returns (bool). +// TypeError 2271: (73-88): Binary operator > not compatible with types function () external returns (bool) and function () external returns (bool). diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_2.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_2.sol index bc3882fdd..961ca732d 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_2.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_gt_2.sol @@ -4,4 +4,4 @@ contract C { } } // ---- -// TypeError 2271: (73-78): Operator > not compatible with types function () returns (bool) and function () returns (bool). +// TypeError 2271: (73-78): Binary operator > not compatible with types function () returns (bool) and function () returns (bool). diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_1.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_1.sol index e924893f0..23fc671f0 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_1.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_1.sol @@ -4,4 +4,4 @@ contract C { } } // ---- -// TypeError 2271: (73-88): Operator < not compatible with types function () external returns (bool) and function () external returns (bool). +// TypeError 2271: (73-88): Binary operator < not compatible with types function () external returns (bool) and function () external returns (bool). diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_2.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_2.sol index 16dc981ad..a55b0fb60 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_2.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_of_function_types_lt_2.sol @@ -4,4 +4,4 @@ contract C { } } // ---- -// TypeError 2271: (73-78): Operator < not compatible with types function () returns (bool) and function () returns (bool). +// TypeError 2271: (73-78): Binary operator < not compatible with types function () returns (bool) and function () returns (bool). diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_operator_for_external_functions_with_extra_gas_slots.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_operator_for_external_functions_with_extra_gas_slots.sol index 824f2dbf8..370d4d2c3 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_operator_for_external_functions_with_extra_gas_slots.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_operator_for_external_functions_with_extra_gas_slots.sol @@ -8,5 +8,5 @@ contract C { } } // ---- -// TypeError 2271: (193-259): Operator == not compatible with types function () external and function () external. -// TypeError 2271: (277-351): Operator == not compatible with types function () external and function () external. +// TypeError 2271: (193-259): Binary operator == not compatible with types function () external and function () external. +// TypeError 2271: (277-351): Binary operator == not compatible with types function () external and function () external. diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_operators_between_internal_and_external_function_pointers.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_operators_between_internal_and_external_function_pointers.sol index a562b2d3f..d0dfd2ea0 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_operators_between_internal_and_external_function_pointers.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_operators_between_internal_and_external_function_pointers.sol @@ -19,5 +19,5 @@ contract C { } } // ---- -// TypeError 2271: (606-672): Operator != not compatible with types function () and function () external. -// TypeError 2271: (688-741): Operator != not compatible with types function () and function () external. +// TypeError 2271: (606-672): Binary operator != not compatible with types function () and function () external. +// TypeError 2271: (688-741): Binary operator != not compatible with types function () and function () external. diff --git a/test/libsolidity/syntaxTests/functionTypes/comparison_operators_external_functions_with_different_parameters.sol b/test/libsolidity/syntaxTests/functionTypes/comparison_operators_external_functions_with_different_parameters.sol index 93facedb0..8ea5984de 100644 --- a/test/libsolidity/syntaxTests/functionTypes/comparison_operators_external_functions_with_different_parameters.sol +++ b/test/libsolidity/syntaxTests/functionTypes/comparison_operators_external_functions_with_different_parameters.sol @@ -21,6 +21,6 @@ contract C { // ---- // TypeError 9574: (249-333): Type function (uint256) external is not implicitly convertible to expected type function () external. // TypeError 9574: (343-427): Type function (bool) external is not implicitly convertible to expected type function () external. -// TypeError 2271: (458-522): Operator == not compatible with types function (uint256) external and function () external. -// TypeError 2271: (538-602): Operator == not compatible with types function (bool) external and function () external. -// TypeError 2271: (726-786): Operator != not compatible with types function (bool) external and function (uint256) external. +// TypeError 2271: (458-522): Binary operator == not compatible with types function (uint256) external and function () external. +// TypeError 2271: (538-602): Binary operator == not compatible with types function (bool) external and function () external. +// TypeError 2271: (726-786): Binary operator != not compatible with types function (bool) external and function (uint256) external. diff --git a/test/libsolidity/syntaxTests/literalOperations/division_by_zero.sol b/test/libsolidity/syntaxTests/literalOperations/division_by_zero.sol index 211eabac2..a8fffedfc 100644 --- a/test/libsolidity/syntaxTests/literalOperations/division_by_zero.sol +++ b/test/libsolidity/syntaxTests/literalOperations/division_by_zero.sol @@ -2,4 +2,4 @@ contract C { uint constant a = 1 / 0; } // ---- -// TypeError 2271: (35-40): Operator / not compatible with types int_const 1 and int_const 0. +// TypeError 2271: (35-40): Binary operator / not compatible with types int_const 1 and int_const 0. diff --git a/test/libsolidity/syntaxTests/literalOperations/division_by_zero_complex.sol b/test/libsolidity/syntaxTests/literalOperations/division_by_zero_complex.sol index afa0896fa..d6e830275 100644 --- a/test/libsolidity/syntaxTests/literalOperations/division_by_zero_complex.sol +++ b/test/libsolidity/syntaxTests/literalOperations/division_by_zero_complex.sol @@ -2,4 +2,4 @@ contract C { uint constant a = 1 / ((1+3)-4); } // ---- -// TypeError 2271: (35-48): Operator / not compatible with types int_const 1 and int_const 0. +// TypeError 2271: (35-48): Binary operator / not compatible with types int_const 1 and int_const 0. diff --git a/test/libsolidity/syntaxTests/literalOperations/exponent.sol b/test/libsolidity/syntaxTests/literalOperations/exponent.sol index c3469054c..53cd130ff 100644 --- a/test/libsolidity/syntaxTests/literalOperations/exponent.sol +++ b/test/libsolidity/syntaxTests/literalOperations/exponent.sol @@ -6,5 +6,5 @@ contract C { } } // ---- -// TypeError 2271: (67-78): Operator ** not compatible with types int256 and int_const 1000...(1226 digits omitted)...0000. Exponent too large. -// TypeError 2271: (88-98): Operator ** not compatible with types int256 and rational_const 1 / 2. Exponent is fractional. +// TypeError 2271: (67-78): Binary operator ** not compatible with types int256 and int_const 1000...(1226 digits omitted)...0000. Exponent too large. +// TypeError 2271: (88-98): Binary operator ** not compatible with types int256 and rational_const 1 / 2. Exponent is fractional. diff --git a/test/libsolidity/syntaxTests/literalOperations/mod_zero.sol b/test/libsolidity/syntaxTests/literalOperations/mod_zero.sol index 28f95e332..17c58c662 100644 --- a/test/libsolidity/syntaxTests/literalOperations/mod_zero.sol +++ b/test/libsolidity/syntaxTests/literalOperations/mod_zero.sol @@ -2,4 +2,4 @@ contract C { uint constant b3 = 1 % 0; } // ---- -// TypeError 2271: (36-41): Operator % not compatible with types int_const 1 and int_const 0. +// TypeError 2271: (36-41): Binary operator % not compatible with types int_const 1 and int_const 0. diff --git a/test/libsolidity/syntaxTests/literalOperations/mod_zero_complex.sol b/test/libsolidity/syntaxTests/literalOperations/mod_zero_complex.sol index 54b6b309b..bdb783d6a 100644 --- a/test/libsolidity/syntaxTests/literalOperations/mod_zero_complex.sol +++ b/test/libsolidity/syntaxTests/literalOperations/mod_zero_complex.sol @@ -2,4 +2,4 @@ contract C { uint constant b3 = 1 % (-4+((2)*2)); } // ---- -// TypeError 2271: (36-52): Operator % not compatible with types int_const 1 and int_const 0. +// TypeError 2271: (36-52): Binary operator % not compatible with types int_const 1 and int_const 0. diff --git a/test/libsolidity/syntaxTests/metaTypes/integer_err.sol b/test/libsolidity/syntaxTests/metaTypes/integer_err.sol index b098a8602..f8f416898 100644 --- a/test/libsolidity/syntaxTests/metaTypes/integer_err.sol +++ b/test/libsolidity/syntaxTests/metaTypes/integer_err.sol @@ -12,4 +12,4 @@ contract Test { // ---- // TypeError 9574: (59-89): Type int256 is not implicitly convertible to expected type uint8. // TypeError 9574: (99-127): Type int256 is not implicitly convertible to expected type uint256. -// TypeError 2271: (142-169): Operator == not compatible with types int256 and int_const 1157...(70 digits omitted)...9935. +// TypeError 2271: (142-169): Binary operator == not compatible with types int256 and int_const 1157...(70 digits omitted)...9935. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/011_type_conversion_for_comparison_invalid.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/011_type_conversion_for_comparison_invalid.sol index 528635b98..b2e19102d 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/011_type_conversion_for_comparison_invalid.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/011_type_conversion_for_comparison_invalid.sol @@ -2,4 +2,4 @@ contract test { function f() public { int32(2) == uint64(2); } } // ---- -// TypeError 2271: (42-63): Operator == not compatible with types int32 and uint64. +// TypeError 2271: (42-63): Binary operator == not compatible with types int32 and uint64. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/025_comparison_of_mapping_types.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/025_comparison_of_mapping_types.sol index 7849588a4..854f4cce4 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/025_comparison_of_mapping_types.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/025_comparison_of_mapping_types.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// TypeError 2271: (147-153): Operator == not compatible with types mapping(uint256 => uint256) and mapping(uint256 => uint256). +// TypeError 2271: (147-153): Binary operator == not compatible with types mapping(uint256 => uint256) and mapping(uint256 => uint256). diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/112_exp_operator_exponent_too_big.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/112_exp_operator_exponent_too_big.sol index 0dfeb892a..c28711989 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/112_exp_operator_exponent_too_big.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/112_exp_operator_exponent_too_big.sol @@ -2,4 +2,4 @@ contract test { function f() public returns (uint d) { return 2 ** 10000000000; } } // ---- -// TypeError 2271: (66-82): Operator ** not compatible with types int_const 2 and int_const 10000000000. +// TypeError 2271: (66-82): Binary operator ** not compatible with types int_const 2 and int_const 10000000000. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/196_integer_boolean_or.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/196_integer_boolean_or.sol index 24c6ce13c..f53cd2d80 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/196_integer_boolean_or.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/196_integer_boolean_or.sol @@ -1,3 +1,3 @@ contract test { fallback() external { uint x = 1; uint y = 2; x || y; } } // ---- -// TypeError 2271: (62-68): Operator || not compatible with types uint256 and uint256. +// TypeError 2271: (62-68): Binary operator || not compatible with types uint256 and uint256. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/197_integer_boolean_and.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/197_integer_boolean_and.sol index 1d1298b05..13ab8f66b 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/197_integer_boolean_and.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/197_integer_boolean_and.sol @@ -1,3 +1,3 @@ contract test { fallback() external { uint x = 1; uint y = 2; x && y; } } // ---- -// TypeError 2271: (62-68): Operator && not compatible with types uint256 and uint256. +// TypeError 2271: (62-68): Binary operator && not compatible with types uint256 and uint256. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/199_integer_unsigned_exp_signed.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/199_integer_unsigned_exp_signed.sol index cabe9aa13..ef3735756 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/199_integer_unsigned_exp_signed.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/199_integer_unsigned_exp_signed.sol @@ -1,3 +1,3 @@ contract test { fallback() external { uint x = 3; int y = -4; x ** y; } } // ---- -// TypeError 2271: (62-68): Operator ** not compatible with types uint256 and int256. Exponentiation power is not allowed to be a signed integer type. +// TypeError 2271: (62-68): Binary operator ** not compatible with types uint256 and int256. Exponentiation power is not allowed to be a signed integer type. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/201_integer_signed_exp_signed.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/201_integer_signed_exp_signed.sol index 188dda39c..58f990c1f 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/201_integer_signed_exp_signed.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/201_integer_signed_exp_signed.sol @@ -4,7 +4,7 @@ contract test { function i() public { int16 x = 4; x ** -3; } } // ---- -// TypeError 2271: (64-70): Operator ** not compatible with types int256 and int256. Exponentiation power is not allowed to be a signed integer type. -// TypeError 2271: (126-132): Operator ** not compatible with types uint8 and int16. Exponentiation power is not allowed to be a signed integer type. +// TypeError 2271: (64-70): Binary operator ** not compatible with types int256 and int256. Exponentiation power is not allowed to be a signed integer type. +// TypeError 2271: (126-132): Binary operator ** not compatible with types uint8 and int16. Exponentiation power is not allowed to be a signed integer type. // Warning 3149: (126-132): The result type of the exponentiation operation is equal to the type of the first operand (uint8) ignoring the (larger) type of the second operand (int16) which might be unexpected. Silence this warning by either converting the first or the second operand to the type of the other. -// TypeError 2271: (175-182): Operator ** not compatible with types int16 and int_const -3. Exponentiation power is not allowed to be a negative integer literal. +// TypeError 2271: (175-182): Binary operator ** not compatible with types int16 and int_const -3. Exponentiation power is not allowed to be a negative integer literal. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/202_bytes_reference_compare_operators.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/202_bytes_reference_compare_operators.sol index 60dffe643..72a4ef1c2 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/202_bytes_reference_compare_operators.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/202_bytes_reference_compare_operators.sol @@ -1,3 +1,3 @@ contract test { bytes a; bytes b; fallback() external { a == b; } } // ---- -// TypeError 2271: (56-62): Operator == not compatible with types bytes storage ref and bytes storage ref. +// TypeError 2271: (56-62): Binary operator == not compatible with types bytes storage ref and bytes storage ref. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/203_struct_reference_compare_operators.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/203_struct_reference_compare_operators.sol index 9594a2a9f..26c9068d5 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/203_struct_reference_compare_operators.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/203_struct_reference_compare_operators.sol @@ -7,4 +7,4 @@ contract test { } } // ---- -// TypeError 2271: (79-85): Operator == not compatible with types struct test.s storage ref and struct test.s storage ref. No matching user-defined operator found. +// TypeError 2271: (79-85): Binary operator == not compatible with types struct test.s storage ref and struct test.s storage ref. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/329_rational_as_exponent_value_signed.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/329_rational_as_exponent_value_signed.sol index 47a1a617f..d0679229c 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/329_rational_as_exponent_value_signed.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/329_rational_as_exponent_value_signed.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (60-69): Operator ** not compatible with types int_const 2 and rational_const -11 / 5. +// TypeError 2271: (60-69): Binary operator ** not compatible with types int_const 2 and rational_const -11 / 5. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/330_rational_as_exponent_value_unsigned.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/330_rational_as_exponent_value_unsigned.sol index 0f93157ed..b600cd767 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/330_rational_as_exponent_value_unsigned.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/330_rational_as_exponent_value_unsigned.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (61-69): Operator ** not compatible with types int_const 3 and rational_const 5 / 2. +// TypeError 2271: (61-69): Binary operator ** not compatible with types int_const 3 and rational_const 5 / 2. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/331_rational_as_exponent_half.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/331_rational_as_exponent_half.sol index 721ca806e..cf7b82b98 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/331_rational_as_exponent_half.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/331_rational_as_exponent_half.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (50-60): Operator ** not compatible with types int_const 2 and rational_const 1 / 2. +// TypeError 2271: (50-60): Binary operator ** not compatible with types int_const 2 and rational_const 1 / 2. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/332_rational_as_exponent_value_neg_quarter.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/332_rational_as_exponent_value_neg_quarter.sol index 6408f13c6..1e42213b9 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/332_rational_as_exponent_value_neg_quarter.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/332_rational_as_exponent_value_neg_quarter.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (50-62): Operator ** not compatible with types int_const 42 and rational_const -1 / 4. +// TypeError 2271: (50-62): Binary operator ** not compatible with types int_const 42 and rational_const -1 / 4. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/333_fixed_point_casting_exponents_15.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/333_fixed_point_casting_exponents_15.sol index f988745ea..380bb8b4c 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/333_fixed_point_casting_exponents_15.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/333_fixed_point_casting_exponents_15.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (61-77): Operator ** not compatible with types int_const 3 and ufixed128x18. Exponent is fractional. +// TypeError 2271: (61-77): Binary operator ** not compatible with types int_const 3 and ufixed128x18. Exponent is fractional. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/334_fixed_point_casting_exponents_neg.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/334_fixed_point_casting_exponents_neg.sol index 68e80e635..2089d9708 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/334_fixed_point_casting_exponents_neg.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/334_fixed_point_casting_exponents_neg.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (61-78): Operator ** not compatible with types int_const 42 and fixed128x18. Exponent is fractional. +// TypeError 2271: (61-78): Binary operator ** not compatible with types int_const 42 and fixed128x18. Exponent is fractional. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/339_rational_bitor_binary_operation.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/339_rational_bitor_binary_operation.sol index 66f5e620a..6ea94382b 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/339_rational_bitor_binary_operation.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/339_rational_bitor_binary_operation.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (50-64): Operator | not compatible with types fixed128x18 and int_const 3. +// TypeError 2271: (50-64): Binary operator | not compatible with types fixed128x18 and int_const 3. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/340_rational_bitxor_binary_operation.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/340_rational_bitxor_binary_operation.sol index 791e1480c..01da3c3f9 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/340_rational_bitxor_binary_operation.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/340_rational_bitxor_binary_operation.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (50-65): Operator ^ not compatible with types fixed128x18 and int_const 3. +// TypeError 2271: (50-65): Binary operator ^ not compatible with types fixed128x18 and int_const 3. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/341_rational_bitand_binary_operation.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/341_rational_bitand_binary_operation.sol index 9e49de99b..6c8f57d69 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/341_rational_bitand_binary_operation.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/341_rational_bitand_binary_operation.sol @@ -4,4 +4,4 @@ contract test { } } // ---- -// TypeError 2271: (50-65): Operator & not compatible with types fixed128x18 and int_const 3. +// TypeError 2271: (50-65): Binary operator & not compatible with types fixed128x18 and int_const 3. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/368_shift_constant_left_negative_rvalue.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/368_shift_constant_left_negative_rvalue.sol index aaa0903b6..5831d10e1 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/368_shift_constant_left_negative_rvalue.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/368_shift_constant_left_negative_rvalue.sol @@ -2,4 +2,4 @@ contract C { uint public a = 0x42 << -8; } // ---- -// TypeError 2271: (33-43): Operator << not compatible with types int_const 66 and int_const -8. +// TypeError 2271: (33-43): Binary operator << not compatible with types int_const 66 and int_const -8. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/369_shift_constant_right_negative_rvalue.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/369_shift_constant_right_negative_rvalue.sol index edfb03d3d..4582a2abd 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/369_shift_constant_right_negative_rvalue.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/369_shift_constant_right_negative_rvalue.sol @@ -2,4 +2,4 @@ contract C { uint public a = 0x42 >> -8; } // ---- -// TypeError 2271: (33-43): Operator >> not compatible with types int_const 66 and int_const -8. +// TypeError 2271: (33-43): Binary operator >> not compatible with types int_const 66 and int_const -8. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/370_shift_constant_left_excessive_rvalue.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/370_shift_constant_left_excessive_rvalue.sol index 17e7cc719..7234c189b 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/370_shift_constant_left_excessive_rvalue.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/370_shift_constant_left_excessive_rvalue.sol @@ -2,4 +2,4 @@ contract C { uint public a = 0x42 << 0x100000000; } // ---- -// TypeError 2271: (33-52): Operator << not compatible with types int_const 66 and int_const 4294967296. +// TypeError 2271: (33-52): Binary operator << not compatible with types int_const 66 and int_const 4294967296. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/371_shift_constant_right_excessive_rvalue.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/371_shift_constant_right_excessive_rvalue.sol index f96eeab2d..af1631203 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/371_shift_constant_right_excessive_rvalue.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/371_shift_constant_right_excessive_rvalue.sol @@ -2,4 +2,4 @@ contract C { uint public a = 0x42 >> 0x100000000; } // ---- -// TypeError 2271: (33-52): Operator >> not compatible with types int_const 66 and int_const 4294967296. +// TypeError 2271: (33-52): Binary operator >> not compatible with types int_const 66 and int_const 4294967296. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/372_shift_constant_right_fractional.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/372_shift_constant_right_fractional.sol index 8f005b9ec..81e084a29 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/372_shift_constant_right_fractional.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/372_shift_constant_right_fractional.sol @@ -2,4 +2,4 @@ contract C { uint public a = 0x42 >> (1 / 2); } // ---- -// TypeError 2271: (33-48): Operator >> not compatible with types int_const 66 and rational_const 1 / 2. +// TypeError 2271: (33-48): Binary operator >> not compatible with types int_const 66 and rational_const 1 / 2. diff --git a/test/libsolidity/syntaxTests/operators/custom/implicit_conversion_is_blocked.sol b/test/libsolidity/syntaxTests/operators/custom/implicit_conversion_is_blocked.sol index f6a98e02b..37fabb068 100644 --- a/test/libsolidity/syntaxTests/operators/custom/implicit_conversion_is_blocked.sol +++ b/test/libsolidity/syntaxTests/operators/custom/implicit_conversion_is_blocked.sol @@ -27,8 +27,8 @@ contract C { } // ---- -// TypeError 2271: (288-293): Operator + not compatible with types struct S storage ref and struct S storage ref. No matching user-defined operator found. -// TypeError 5653: (303-314): User defined operator + not compatible with types struct S memory and bool. -// TypeError 2271: (324-332): Operator + not compatible with types bool and struct S storage ref. +// TypeError 2271: (288-293): Binary operator + not compatible with types struct S storage ref and struct S storage ref. No matching user-defined operator found. +// TypeError 5653: (303-314): User defined binary operator + not compatible with types struct S memory and bool. +// TypeError 2271: (324-332): Binary operator + not compatible with types bool and struct S storage ref. // TypeError 4907: (357-359): Unary operator - cannot be applied to type struct S storage ref. No matching user-defined operator found. // TypeError 4907: (369-374): Unary operator - cannot be applied to type bool. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_bind_is_not_inherited.sol b/test/libsolidity/syntaxTests/operators/custom/operator_bind_is_not_inherited.sol index d5e56e9c8..37314b45a 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_bind_is_not_inherited.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_bind_is_not_inherited.sol @@ -31,4 +31,4 @@ contract D is B { } // ---- -// TypeError 2271: (542-567): Operator + not compatible with types Int and Int. No matching user-defined operator found. +// TypeError 2271: (542-567): Binary operator + not compatible with types Int and Int. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_bind_on_file_and_contract_level.sol b/test/libsolidity/syntaxTests/operators/custom/operator_bind_on_file_and_contract_level.sol index 1d6cc6148..54999efb4 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_bind_on_file_and_contract_level.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_bind_on_file_and_contract_level.sol @@ -19,4 +19,4 @@ contract C { } // ---- -// TypeError 2271: (281-306): Operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator. +// TypeError 2271: (281-306): Binary operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_binding_is_not_transitive.sol b/test/libsolidity/syntaxTests/operators/custom/operator_binding_is_not_transitive.sol index 429c53509..b9249db5f 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_binding_is_not_transitive.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_binding_is_not_transitive.sol @@ -27,4 +27,4 @@ contract C { } // ---- -// TypeError 2271: (s3.sol:81-106): Operator + not compatible with types Int and Int. No matching user-defined operator found. +// TypeError 2271: (s3.sol:81-106): Binary operator + not compatible with types Int and Int. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_invalid_parameters.sol b/test/libsolidity/syntaxTests/operators/custom/operator_invalid_parameters.sol index df2c1ac8c..8af04692e 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_invalid_parameters.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_invalid_parameters.sol @@ -29,6 +29,6 @@ function f() pure { // TypeError 8112: (47-50): The function "sub" needs to have one or two parameters of type Int and the same data location to be used for the operator -. // TypeError 7617: (61-64): The function "div" needs to have one or two parameters of type Int and the same data location to be used for the operator /. // TypeError 3605: (61-64): The function "div" needs to have parameters and return value of the same type to be used for the operator /. -// TypeError 2271: (325-350): Operator + not compatible with types Int and Int. No matching user-defined operator found. -// TypeError 2271: (356-381): Operator - not compatible with types Int and Int. No matching user-defined operator found. -// TypeError 2271: (387-412): Operator / not compatible with types Int and Int. No matching user-defined operator found. +// TypeError 2271: (325-350): Binary operator + not compatible with types Int and Int. No matching user-defined operator found. +// TypeError 2271: (356-381): Binary operator - not compatible with types Int and Int. No matching user-defined operator found. +// TypeError 2271: (387-412): Binary operator / not compatible with types Int and Int. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_with_calldata_parameters.sol b/test/libsolidity/syntaxTests/operators/custom/operator_with_calldata_parameters.sol index 1f1c46ecb..01c7055e5 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_with_calldata_parameters.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_with_calldata_parameters.sol @@ -64,5 +64,5 @@ function test(S calldata s) pure { // TypeError 7617: (82-87): The function "unsub" needs to have one or two parameters of type S and the same data location to be used for the operator -. // TypeError 3605: (82-87): The function "unsub" needs to have parameters and return value of the same type to be used for the operator -. // TypeError 7743: (98-104): The function "bitnot" needs to return exactly one value of type S to be used for the operator ~. -// TypeError 2271: (758-763): Operator * not compatible with types struct S calldata and struct S calldata. No matching user-defined operator found. +// TypeError 2271: (758-763): Binary operator * not compatible with types struct S calldata and struct S calldata. No matching user-defined operator found. // TypeError 4907: (791-793): Unary operator - cannot be applied to type struct S calldata. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/operators/custom/operator_with_storage_parameters.sol b/test/libsolidity/syntaxTests/operators/custom/operator_with_storage_parameters.sol index 8767f8105..89c3643e0 100644 --- a/test/libsolidity/syntaxTests/operators/custom/operator_with_storage_parameters.sol +++ b/test/libsolidity/syntaxTests/operators/custom/operator_with_storage_parameters.sol @@ -59,5 +59,5 @@ contract C { // TypeError 7743: (68-71): The function "mod" needs to return exactly one value of type S to be used for the operator %. // TypeError 7743: (82-87): The function "unsub" needs to return exactly one value of type S to be used for the operator -. // TypeError 1147: (98-104): The function "bitnot" needs to have exactly one parameter of type S to be used for the operator ~. -// TypeError 2271: (722-727): Operator * not compatible with types struct S storage ref and struct S storage ref. No matching user-defined operator found. +// TypeError 2271: (722-727): Binary operator * not compatible with types struct S storage ref and struct S storage ref. No matching user-defined operator found. // TypeError 4907: (779-781): Unary operator ~ cannot be applied to type struct S storage ref. No matching user-defined operator found. diff --git a/test/libsolidity/syntaxTests/operators/custom/two_functions_bound_to_operator.sol b/test/libsolidity/syntaxTests/operators/custom/two_functions_bound_to_operator.sol index 9eb017447..0ea48d80f 100644 --- a/test/libsolidity/syntaxTests/operators/custom/two_functions_bound_to_operator.sol +++ b/test/libsolidity/syntaxTests/operators/custom/two_functions_bound_to_operator.sol @@ -14,4 +14,4 @@ function test() { Int.wrap(0) + Int.wrap(1); } // ---- -// TypeError 2271: (213-238): Operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator. +// TypeError 2271: (213-238): Binary operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator. diff --git a/test/libsolidity/syntaxTests/shifts/shift_singed_rvalue.sol b/test/libsolidity/syntaxTests/shifts/shift_singed_rvalue.sol index 87a2dee81..8dd9a7e8c 100644 --- a/test/libsolidity/syntaxTests/shifts/shift_singed_rvalue.sol +++ b/test/libsolidity/syntaxTests/shifts/shift_singed_rvalue.sol @@ -7,5 +7,5 @@ contract C { } } // ---- -// TypeError 2271: (89-95): Operator >> not compatible with types int256 and int256. -// TypeError 2271: (179-193): Operator >> not compatible with types int256 and int256. +// TypeError 2271: (89-95): Binary operator >> not compatible with types int256 and int256. +// TypeError 2271: (179-193): Binary operator >> not compatible with types int256 and int256. diff --git a/test/libsolidity/syntaxTests/signed_rational_modulus.sol b/test/libsolidity/syntaxTests/signed_rational_modulus.sol index 999086ae1..de1060794 100644 --- a/test/libsolidity/syntaxTests/signed_rational_modulus.sol +++ b/test/libsolidity/syntaxTests/signed_rational_modulus.sol @@ -7,4 +7,4 @@ contract test { } } // ---- -// TypeError 2271: (117-123): Operator % not compatible with types rational_const 1 / 2 and fixed128x18. Fractional literals not supported. +// TypeError 2271: (117-123): Binary operator % not compatible with types rational_const 1 / 2 and fixed128x18. Fractional literals not supported. diff --git a/test/libsolidity/syntaxTests/types/address/address_binary_operators.sol b/test/libsolidity/syntaxTests/types/address/address_binary_operators.sol index f26eed18a..e3fdbaa0a 100644 --- a/test/libsolidity/syntaxTests/types/address/address_binary_operators.sol +++ b/test/libsolidity/syntaxTests/types/address/address_binary_operators.sol @@ -9,7 +9,7 @@ contract C { } } // ---- -// TypeError 2271: (85-108): Operator + not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. -// TypeError 2271: (122-145): Operator - not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. -// TypeError 2271: (159-182): Operator * not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. -// TypeError 2271: (196-219): Operator / not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. +// TypeError 2271: (85-108): Binary operator + not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. +// TypeError 2271: (122-145): Binary operator - not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. +// TypeError 2271: (159-182): Binary operator * not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. +// TypeError 2271: (196-219): Binary operator / not compatible with types address and address. Arithmetic operations on addresses are not supported. Convert to integer first before using them. diff --git a/test/libsolidity/syntaxTests/types/bool_ops.sol b/test/libsolidity/syntaxTests/types/bool_ops.sol index b107c979a..13a932399 100644 --- a/test/libsolidity/syntaxTests/types/bool_ops.sol +++ b/test/libsolidity/syntaxTests/types/bool_ops.sol @@ -32,22 +32,22 @@ contract C { } } // ---- -// TypeError 2271: (231-236): Operator > not compatible with types bool and bool. -// TypeError 2271: (250-255): Operator < not compatible with types bool and bool. -// TypeError 2271: (269-275): Operator >= not compatible with types bool and bool. -// TypeError 2271: (289-295): Operator <= not compatible with types bool and bool. -// TypeError 2271: (309-314): Operator & not compatible with types bool and bool. -// TypeError 2271: (328-333): Operator | not compatible with types bool and bool. -// TypeError 2271: (347-352): Operator ^ not compatible with types bool and bool. +// TypeError 2271: (231-236): Binary operator > not compatible with types bool and bool. +// TypeError 2271: (250-255): Binary operator < not compatible with types bool and bool. +// TypeError 2271: (269-275): Binary operator >= not compatible with types bool and bool. +// TypeError 2271: (289-295): Binary operator <= not compatible with types bool and bool. +// TypeError 2271: (309-314): Binary operator & not compatible with types bool and bool. +// TypeError 2271: (328-333): Binary operator | not compatible with types bool and bool. +// TypeError 2271: (347-352): Binary operator ^ not compatible with types bool and bool. // TypeError 4907: (366-368): Unary operator ~ cannot be applied to type bool. // TypeError 4907: (382-384): Unary operator ~ cannot be applied to type bool. -// TypeError 2271: (398-403): Operator + not compatible with types bool and bool. -// TypeError 2271: (417-422): Operator - not compatible with types bool and bool. +// TypeError 2271: (398-403): Binary operator + not compatible with types bool and bool. +// TypeError 2271: (417-422): Binary operator - not compatible with types bool and bool. // TypeError 4907: (436-438): Unary operator - cannot be applied to type bool. // TypeError 4907: (452-454): Unary operator - cannot be applied to type bool. -// TypeError 2271: (468-473): Operator * not compatible with types bool and bool. -// TypeError 2271: (487-492): Operator / not compatible with types bool and bool. -// TypeError 2271: (506-512): Operator ** not compatible with types bool and bool. -// TypeError 2271: (526-531): Operator % not compatible with types bool and bool. -// TypeError 2271: (545-551): Operator << not compatible with types bool and bool. -// TypeError 2271: (565-571): Operator >> not compatible with types bool and bool. +// TypeError 2271: (468-473): Binary operator * not compatible with types bool and bool. +// TypeError 2271: (487-492): Binary operator / not compatible with types bool and bool. +// TypeError 2271: (506-512): Binary operator ** not compatible with types bool and bool. +// TypeError 2271: (526-531): Binary operator % not compatible with types bool and bool. +// TypeError 2271: (545-551): Binary operator << not compatible with types bool and bool. +// TypeError 2271: (565-571): Binary operator >> not compatible with types bool and bool. diff --git a/test/libsolidity/syntaxTests/types/rational_number_bitshift_limit.sol b/test/libsolidity/syntaxTests/types/rational_number_bitshift_limit.sol index 15146500a..f14a54e03 100644 --- a/test/libsolidity/syntaxTests/types/rational_number_bitshift_limit.sol +++ b/test/libsolidity/syntaxTests/types/rational_number_bitshift_limit.sol @@ -8,6 +8,6 @@ contract c { } // ---- // TypeError 7407: (71-80): Type int_const 5221...(1225 digits omitted)...5168 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (133-142): Operator << not compatible with types int_const 1 and int_const 4096. -// TypeError 2271: (169-182): Operator << not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 2. +// TypeError 2271: (133-142): Binary operator << not compatible with types int_const 1 and int_const 4096. +// TypeError 2271: (169-182): Binary operator << not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 2. // TypeError 7407: (169-182): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. diff --git a/test/libsolidity/syntaxTests/types/rational_number_div_limit.sol b/test/libsolidity/syntaxTests/types/rational_number_div_limit.sol index 388e9d398..50da39a81 100644 --- a/test/libsolidity/syntaxTests/types/rational_number_div_limit.sol +++ b/test/libsolidity/syntaxTests/types/rational_number_div_limit.sol @@ -5,5 +5,5 @@ contract c { } } // ---- -// TypeError 2271: (71-92): Operator / not compatible with types rational_const 1 / 5221...(1225 digits omitted)...5168 and int_const 5221...(1225 digits omitted)...5168. Precision of rational constants is limited to 4096 bits. +// TypeError 2271: (71-92): Binary operator / not compatible with types rational_const 1 / 5221...(1225 digits omitted)...5168 and int_const 5221...(1225 digits omitted)...5168. Precision of rational constants is limited to 4096 bits. // TypeError 2326: (71-92): Type rational_const 1 / 5221...(1225 digits omitted)...5168 is not implicitly convertible to expected type int256. Try converting to type ufixed8x80 or use an explicit conversion. diff --git a/test/libsolidity/syntaxTests/types/rational_number_exp_limit_fail.sol b/test/libsolidity/syntaxTests/types/rational_number_exp_limit_fail.sol index 3ab4cdae3..bdda1a37f 100644 --- a/test/libsolidity/syntaxTests/types/rational_number_exp_limit_fail.sol +++ b/test/libsolidity/syntaxTests/types/rational_number_exp_limit_fail.sol @@ -19,29 +19,29 @@ contract c { } } // ---- -// TypeError 2271: (71-112): Operator ** not compatible with types int_const 1797...(301 digits omitted)...7216 and int_const 4. +// TypeError 2271: (71-112): Binary operator ** not compatible with types int_const 1797...(301 digits omitted)...7216 and int_const 4. // TypeError 7407: (71-112): Type int_const 1797...(301 digits omitted)...7216 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (135-151): Operator ** not compatible with types int_const 4 and int_const 1157...(70 digits omitted)...9936. +// TypeError 2271: (135-151): Binary operator ** not compatible with types int_const 4 and int_const 1157...(70 digits omitted)...9936. // TypeError 7407: (126-169): Type int_const 1340...(147 digits omitted)...4096 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (201-217): Operator ** not compatible with types int_const 4 and int_const 1340...(147 digits omitted)...4096. -// TypeError 2271: (183-219): Operator ** not compatible with types int_const 4 and int_const -115...(71 digits omitted)...9936. -// TypeError 2271: (233-244): Operator ** not compatible with types int_const 2 and int_const 1000...(1226 digits omitted)...0000. -// TypeError 2271: (258-270): Operator ** not compatible with types int_const -2 and int_const 1000...(1226 digits omitted)...0000. -// TypeError 2271: (284-296): Operator ** not compatible with types int_const 2 and int_const -100...(1227 digits omitted)...0000. -// TypeError 2271: (310-323): Operator ** not compatible with types int_const -2 and int_const -100...(1227 digits omitted)...0000. -// TypeError 2271: (337-348): Operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 2. +// TypeError 2271: (201-217): Binary operator ** not compatible with types int_const 4 and int_const 1340...(147 digits omitted)...4096. +// TypeError 2271: (183-219): Binary operator ** not compatible with types int_const 4 and int_const -115...(71 digits omitted)...9936. +// TypeError 2271: (233-244): Binary operator ** not compatible with types int_const 2 and int_const 1000...(1226 digits omitted)...0000. +// TypeError 2271: (258-270): Binary operator ** not compatible with types int_const -2 and int_const 1000...(1226 digits omitted)...0000. +// TypeError 2271: (284-296): Binary operator ** not compatible with types int_const 2 and int_const -100...(1227 digits omitted)...0000. +// TypeError 2271: (310-323): Binary operator ** not compatible with types int_const -2 and int_const -100...(1227 digits omitted)...0000. +// TypeError 2271: (337-348): Binary operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 2. // TypeError 7407: (337-348): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (362-374): Operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const 2. +// TypeError 2271: (362-374): Binary operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const 2. // TypeError 7407: (362-374): Type int_const -100...(1227 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (388-400): Operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const -2. +// TypeError 2271: (388-400): Binary operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const -2. // TypeError 7407: (388-400): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (414-427): Operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const -2. +// TypeError 2271: (414-427): Binary operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const -2. // TypeError 7407: (414-427): Type int_const -100...(1227 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (441-457): Operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 1000...(1226 digits omitted)...0000. +// TypeError 2271: (441-457): Binary operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 1000...(1226 digits omitted)...0000. // TypeError 7407: (441-457): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (471-488): Operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const -100...(1227 digits omitted)...0000. +// TypeError 2271: (471-488): Binary operator ** not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const -100...(1227 digits omitted)...0000. // TypeError 7407: (471-488): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (502-519): Operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const 1000...(1226 digits omitted)...0000. +// TypeError 2271: (502-519): Binary operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const 1000...(1226 digits omitted)...0000. // TypeError 7407: (502-519): Type int_const -100...(1227 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. -// TypeError 2271: (533-551): Operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const -100...(1227 digits omitted)...0000. +// TypeError 2271: (533-551): Binary operator ** not compatible with types int_const -100...(1227 digits omitted)...0000 and int_const -100...(1227 digits omitted)...0000. // TypeError 7407: (533-551): Type int_const -100...(1227 digits omitted)...0000 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. diff --git a/test/libsolidity/syntaxTests/types/rational_number_mul_limit.sol b/test/libsolidity/syntaxTests/types/rational_number_mul_limit.sol index a02578453..83232d982 100644 --- a/test/libsolidity/syntaxTests/types/rational_number_mul_limit.sol +++ b/test/libsolidity/syntaxTests/types/rational_number_mul_limit.sol @@ -5,5 +5,5 @@ contract c { } } // ---- -// TypeError 2271: (71-90): Operator * not compatible with types int_const 5221...(1225 digits omitted)...5168 and int_const 5221...(1225 digits omitted)...5168. Precision of rational constants is limited to 4096 bits. +// TypeError 2271: (71-90): Binary operator * not compatible with types int_const 5221...(1225 digits omitted)...5168 and int_const 5221...(1225 digits omitted)...5168. Precision of rational constants is limited to 4096 bits. // TypeError 7407: (71-90): Type int_const 5221...(1225 digits omitted)...5168 is not implicitly convertible to expected type int256. Literal is too large to fit in int256. diff --git a/test/libsolidity/syntaxTests/using/override_user_type_operator_defined_as_global.sol b/test/libsolidity/syntaxTests/using/override_user_type_operator_defined_as_global.sol index 1078ce5da..293ce0878 100644 --- a/test/libsolidity/syntaxTests/using/override_user_type_operator_defined_as_global.sol +++ b/test/libsolidity/syntaxTests/using/override_user_type_operator_defined_as_global.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// TypeError 2271: (s2.sol:184-209): Operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator. +// TypeError 2271: (s2.sol:184-209): Binary operator + not compatible with types Int and Int. Multiple user-defined functions provided for this operator.