Skip to content

Commit 3a8a324

Browse files
committed
Forgot to commit and push, both sides working now for 2 arguments
1 parent 5c9bc40 commit 3a8a324

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

effekt/shared/src/main/scala/effekt/core/ArityRaising.scala

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ object ArityRaising extends Phase[CoreTransformed, CoreTransformed] {
1414
Context.module = mod
1515
val main = C.ensureMainExists(mod)
1616
val res = Deadcode.remove(main, core)
17+
println("Before")
18+
println(PrettyPrinter.format(res))
1719
val transformed = Context.timed(phaseName, source.name) { transform(res) }
1820
println(PrettyPrinter.format(transformed))
1921
println("\n\n\nparts\n\n")
@@ -28,10 +30,6 @@ object ArityRaising extends Phase[CoreTransformed, CoreTransformed] {
2830

2931
def transform(toplevel: Toplevel)(using C: Context, DC: DeclarationContext): Toplevel = toplevel match {
3032
case Toplevel.Def(id, BlockLit(tparams, cparams, List(ValueParam(param, ValueType.Data(name, targs))), bparams, body)) =>
31-
println("### id : ")
32-
println(param)
33-
println(name)
34-
println(targs)
3533
DC.findData(name) match {
3634
case Some(Data(_, List(), List(Constructor(test, List(), List(Field(x, tpe1), Field(y, tpe2)))))) =>
3735
println(test)
@@ -45,11 +43,11 @@ object ArityRaising extends Phase[CoreTransformed, CoreTransformed] {
4543
}
4644

4745
case Toplevel.Def(id, block) =>
48-
println("\n\nid:")
49-
println(doIndentation(id.toString))
50-
println("block:")
51-
println(doIndentation(block.toString))
52-
Toplevel.Def(id, transform(block))
46+
val res = Toplevel.Def(id, transform(block))
47+
println("\n\nres:")
48+
println(doIndentation(res.toString))
49+
res
50+
5351
case Toplevel.Val(id, tpe, binding) => Toplevel.Val(id, tpe, transform(binding))
5452
}
5553

@@ -88,10 +86,15 @@ object ArityRaising extends Phase[CoreTransformed, CoreTransformed] {
8886
case Some(Data(_, List(), List(Constructor(test, List(), List(Field(x, tpe1), Field(y, tpe2)))))) =>
8987
val transformedVargs = List(ValueVar(x, tpe1), ValueVar(y, tpe2))
9088
val res = Stmt.App(BlockVar(id, BlockType.Function(List(), List(), List(tpe1, tpe2), List(), returnTpe), annotatedCapt), targs, transformedVargs, bargs)
89+
val latermatch: BlockLit = Block.BlockLit(List(), List(), List(ValueParam(x,tpe1), ValueParam(y, tpe2)), List(), res)
90+
val newMatch = Stmt.Match(vargs.head, List((test, latermatch)), None)
9191
println("res $$$$###")
92-
println(res)
93-
println(vargs)
94-
res
92+
println(stmt)
93+
println(name)
94+
println(test)
95+
println(vargs.head)
96+
println(newMatch)
97+
newMatch
9598

9699
case _ =>
97100
stmt
@@ -106,6 +109,7 @@ object ArityRaising extends Phase[CoreTransformed, CoreTransformed] {
106109
Stmt.If(transform(cond), transform(thn), transform(els))
107110
case Stmt.Match(scrutinee, clauses, default) =>
108111
Stmt.Match(transform(scrutinee), clauses.map { case (id, clause) => (id, transform(clause)) }, default map transform)
112+
109113
case _ => stmt
110114
}
111115

0 commit comments

Comments
 (0)