typedlua
typedlua copied to clipboard
enhanced flow typing on while/break
Continuing on the theme of issue #96:
We can also have smarter flow typing on while loops if we track breaks:
while n do
-- a block without breaks
end
-- we now that n is falsy here
If the break has been the result of a filter we can even propagate it outside the while:
while true do
-- something something that does not break
if not n then break end
-- something something that does not break
end
-- we also now know n is falsy here
The first is relatively easy, the second requires more thought.