Nix Language Quirks: Difference between revisions

imported>Milahu
add section: Integer precision
imported>Milahu
add section: No negative number literals
Line 157: Line 157:
nix-repl> 9223372036854775808   
nix-repl> 9223372036854775808   
error: invalid integer '9223372036854775808'
error: invalid integer '9223372036854775808'
</syntaxHighlight>
<!-- TODO Float Precision -->
== No negative number literals ==
Negative numbers are parsed as "zero minus positive"
<pre>
nix-instantiate --parse --expr '(-1)'
(__sub 0 1)
</pre>
So this throws, because the positive number is out of range
<syntaxHighlight lang=nix>
nix-repl> -9223372036854775808
error: invalid integer '9223372036854775808'
</syntaxHighlight>
but this works
<syntaxHighlight lang=nix>
nix-repl> -9223372036854775807 - 1
-9223372036854775808
</syntaxHighlight>
</syntaxHighlight>