Defer is now lowered in its own pass as a first step towards refactoring other things into their own passes as well

This commit is contained in:
Nathan Braswell
2016-06-15 01:36:59 -07:00
parent acb0e48324
commit d44293a48b
9 changed files with 193 additions and 56 deletions

View File

@@ -7,10 +7,11 @@ happens every time, even when breaking or continueing
5
happens every time, even when breaking or continueing
happens every time, even when breaking or continueing
7
only happens once before breaking 7
happens every time, even when breaking or continueing
happens every time, even when breaking or continueing
happens every time, even when breaking or continueing
block outside for
first
last
deferred

View File

@@ -1,14 +1,21 @@
import io:*
fun main():int {
for (var i = 1; i < 10; i++;) {
{
defer println("happens every time, even when breaking or continueing")
if (i % 2 == 0)
continue
if (i == 9)
break
println(i)
{
defer println("block outside for")
for (var i = 1; i < 10; i++;) {
{
defer println("happens every time, even when breaking or continueing")
if (i % 2 == 0)
continue
if (i == 9)
break
if (i == 7) {
defer println("only happens once before breaking 7")
continue
}
println(i)
}
}
}
{