Added compare_to as a standard macro.

This commit is contained in:
Christoffer Lerno
2023-08-17 10:13:00 +02:00
parent b05ba8d110
commit 9b0da89a03
4 changed files with 40 additions and 5 deletions

View File

@@ -48,6 +48,20 @@ macro greater(a, b) @builtin
$endswitch
}
/**
* @require types::is_comparable_value(a) && types::is_comparable_value(b)
**/
macro int compare_to(a, b) @builtin
{
$switch
$case $defined(a.compare_to):
return a.compare_to(b);
$case $defined(a.less):
return (int)b.less(a) - (int)a.less(b);
$default:
return (int)(a > b) - (int)(a < b);
$endswitch
}
/**
* @require types::is_comparable_value(a) && types::is_comparable_value(b)
**/

View File

@@ -131,7 +131,6 @@ macro sign(x)
$endif
}
/**
* @require values::@is_int(x) || values::@is_float(x) "Expected an integer or floating point value"
* @checked x + y