mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 14:25:44 +08:00
Update lint.md (#634)
Add documentation for IntegerParsing and ComparisonPrecedence lints
This commit is contained in:
parent
e15b0728be
commit
2c40b7661c
@ -327,3 +327,26 @@ Luau uses comments that start from `!` to control certain aspects of analysis, f
|
||||
-- Unknown comment directive 'nostrict'; did you mean 'nonstrict'?"
|
||||
```
|
||||
```
|
||||
|
||||
## IntegerParsing (27)
|
||||
|
||||
Luau parses hexadecimal and binary literals as 64-bit integers before converting them to Luau numbers. As a result, numbers that exceed 2^64 are silently truncated to 2^64, which can result in unexpected program behavior. This warning flags literals that are truncated:
|
||||
|
||||
```
|
||||
-- Hexadecimal number literal exceeded available precision and has been truncated to 2^64
|
||||
local x = 0x1111111111111111111111111111111111111
|
||||
```
|
||||
|
||||
## ComparisonPrecedence (28)
|
||||
|
||||
Because of operator precedence rules, not X == Y parses as (not X) == Y; however, often the intent was to invert the result of the comparison. This warning flags erroneous conditions like that, as well as flagging cases where two comparisons happen in a row without any parentheses:
|
||||
|
||||
```
|
||||
-- not X == Y is equivalent to (not X) == Y; consider using X ~= Y, or wrap one of the expressions in parentheses to silence
|
||||
if not x == 5 then
|
||||
end
|
||||
|
||||
-- X <= Y <= Z is equivalent to (X <= Y) <= Z; wrap one of the expressions in parentheses to silence
|
||||
if 1 <= x <= 3 then
|
||||
end
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user