@@ -40,14 +40,6 @@ object DiagrammedExprMacro {
40
40
def default : Term =
41
41
' { DiagrammedExpr .simpleExpr[R ]($ {expr.seal.cast[R ]}, $ { getAnchor(expr) } ) }.unseal
42
42
43
- def lets (xs : List [Term ])(body : List [Term ] => Term ): Term = {
44
- def rec (xs : List [Term ], acc : List [Term ]): Term = xs match {
45
- case Nil => body(acc)
46
- case x :: xs => let(x) { (x : Term ) => rec(xs, x :: acc) }
47
- }
48
- rec(xs, Nil )
49
- }
50
-
51
43
def getAnchorForSelect (sel : Select ): Expr [Int ] = {
52
44
if (sel.name == " unary_!" )
53
45
(sel.pos.startColumn - rootPosition.startColumn).toExpr
@@ -90,7 +82,6 @@ object DiagrammedExprMacro {
90
82
case Block (stats, expr) =>
91
83
// call parse recursively using the expr argument if it is a block
92
84
Block (stats, parse(refl)(expr))
93
-
94
85
case Apply (sel @ Select (lhs, op), rhs :: Nil ) =>
95
86
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
96
87
op match {
@@ -128,7 +119,7 @@ object DiagrammedExprMacro {
128
119
let(right) { r =>
129
120
val left = l.seal.cast[DiagrammedExpr [T ]]
130
121
val right = r.seal.cast[DiagrammedExpr [_]]
131
- val res = apply(' {$left. value}.unseal , op, Nil , ' {$right. value}.unseal :: Nil ).seal.cast[R ]
122
+ val res = apply(Select .unique(l, " value" ) , op, Nil , Select .unique(r, " value" ) :: Nil ).seal.cast[R ]
132
123
' { DiagrammedExpr .applyExpr[R ]($left, $right :: Nil , $res, $anchor) }.unseal
133
124
}
134
125
}
@@ -147,7 +138,7 @@ object DiagrammedExprMacro {
147
138
lets(rights) { rs =>
148
139
val left = l.seal.cast[DiagrammedExpr [T ]]
149
140
val rights = rs.map(_.seal.cast[DiagrammedExpr [_]])
150
- val res = Select .overloaded(' {$left. value}.unseal , op, Nil , rs).seal.cast[R ]
141
+ val res = Select .overloaded(Select .unique(l, " value" ) , op, Nil , rs.map(r => Select .unique(r, " value " )) ).seal.cast[R ]
151
142
' { DiagrammedExpr .applyExpr[R ]($left, $ {rights.toExprOfList}, $res, $anchor) }.unseal
152
143
}
153
144
}
@@ -165,7 +156,7 @@ object DiagrammedExprMacro {
165
156
lets(rights) { rs =>
166
157
val left = l.seal.cast[DiagrammedExpr [T ]]
167
158
val rights = rs.map(_.seal.cast[DiagrammedExpr [_]])
168
- val res = Select .overloaded(' {$left. value}.unseal , op, targs.map(_.tpe), rs).seal.cast[R ]
159
+ val res = Select .overloaded(Select .unique(l, " value" ) , op, targs.map(_.tpe), rs.map(r => Select .unique(r, " value " )) ).seal.cast[R ]
169
160
' { DiagrammedExpr .applyExpr[R ]($left, $ {rights.toExprOfList}, $res, $anchor) }.unseal
170
161
}
171
162
}
0 commit comments