Updates the flexible literal promotion algorithm to match current harec
behavior in promoting signed flexible literals to unsigned integer types.
Signed-off-by: Rosie K Languet <rkl@rosiesworkshop.net>
---
language/expressions.tex | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/language/expressions.tex b/language/expressions.tex
index 0d47f53..dcbc110 100644
--- a/language/expressions.tex+++ b/language/expressions.tex
@@ -2809,11 +2809,15 @@ which shall be the result of the promotion.
\specsubitem
If one operand is a flexible integer and the other is a non-flexible type, the
-promotion shall succeed only if the non-flexible type is an integer type, and-the minimum and maximum value fields of the flexible integer are representable-within the non-flexible integer type without any data loss. If the promotion-succeeds, the flexible integer shall be lowered to the non-flexible integer-type, which shall be the result of the promotion.+promotion shall succeed only if the non-flexible type is an integer type and if+the maximum value field of the flexible integer is representable within the+integer type without any data loss. If the integer type is signed, the promotion+shall succeed only if the minimum value field is also so representable. If the+integer type is unsigned and the flexible integer is negative, it shall be first+promoted to the corresponding (equal-width) signed integer type, and then+bit-cast to the unsigned type. If the promotion succeeds, the flexible integer+shall be lowered to the non-flexible integer type, which shall be the result of+the promotion.\specsubitem
If one operand is a flexible rune, the promotion shall succeed if the other type
--
2.47.1
> \specsubitem> If one operand is a flexible integer and the other is a non-flexible type, the> -promotion shall succeed only if the non-flexible type is an integer type, and> -the minimum and maximum value fields of the flexible integer are representable> -within the non-flexible integer type without any data loss. If the promotion> -succeeds, the flexible integer shall be lowered to the non-flexible integer> -type, which shall be the result of the pr> omotion.
Okay I'm very confused now. There is *something* between lists.sr.ht and
my mailbox breaking that last line up, making the patch corrupt. But in
the patch ui on lists.sr.ht it shows up fine. This has never happened to
me before, but it looks like this really isn't an issue on your end, sorry.
thanks!
to git@git.sr.ht:~sircmpwn/hare-specification
f07ed81..fd73e45 master -> master
needed some fiddling to apply, not sure why but one of the lines got
split in two for me