| Age | Commit message (Collapse) | Author | Lines |
|
Also adds proper checking for cont/break being inside a loop.
Closes #1854
Issue #1619
|
|
|
|
|
|
Add a loop {} construct for infinite loops, and use it in test
cases. See #1906 for details.
|
|
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
|
|
Issue #1396
|
|
|
|
#debug.
|
|
Issue #1056
|
|
|
|
|
|
|
|
|
|
|
|
The builder functions in trans_build now look at an 'unreachable' flag
in the block context and don't generate code (returning undefined
placeholder values) when this flag is set. Threading the unreachable
flag through context still requires some care, but this seems a more
sane approach than re-checking for terminated blocks throughout the
compiler.
When creating a block, if you use its closest dominator as parent, the
flag will be automatically passed through. If you can't do that,
because the dominator is a scope block that you're trying to get out
of, you'll have to do something like this to explicitly pass on the
flag:
if bcx.unreachable { Unreachable(next_cx); }
Closes #949. Closes #946. Closes #942. Closes #895. Closes #894.
Closes #892. Closes #957. Closes #958.
|