andremm / typedlua

An Optional Type System for Lua
565 stars 53 forks source link

enhanced flow typing on while/break #97

Open mascarenhas opened 8 years ago

mascarenhas commented 8 years ago

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.