mach
mach copied to clipboard
sysgpu: Shader compiler doesn't handle hexadecimal numbers with [eEfF] correctly
Uppercase Fs in a hex number cause an error.
null:4:26 error: expected ';', but found 'an identifier'
4 │ let x: u32 = 1234 & 0xFF;
^~
Lowercase fs cause a different issue:
null:4:24 error: hexadecimal float literals not implemented
4 │ let x: u32 = 1234 & 0xff;
^~~~
The same error occurs with hex numbers containing a singular e/E:
null:4:28 error: hexadecimal float literals not implemented
4 │ let x: u32 = 1234 & 0x0E;
^~~~
null:4:28 error: hexadecimal float literals not implemented
4 │ let x: u32 = 1234 & 0x0e;
^~~~
Finally, numbers containing two es/Es also cause an error:
null:4:24 error: duplicate exponent 'E'
4 │ let x: u32 = 123 & 0xEE;
^~~~
Putting other digits between two es doesn't change this:
null:4:24 error: duplicate exponent 'e'
4 │ let x: u32 = 123 & 0xe123e;
^~~~~~~