@@ -16,13 +16,11 @@ import java.util.function.IntUnaryOperator
16
16
17
17
import scala .collection .mutable
18
18
import scala .collection .mutable .ListBuffer
19
- import language .existentials
20
19
21
20
trait ExprBuilder {
22
21
builder : AsyncMacro =>
23
22
24
23
import c .universe ._
25
- import defn ._
26
24
import c .internal ._
27
25
28
26
val futureSystem : FutureSystem
@@ -99,7 +97,7 @@ trait ExprBuilder {
99
97
Array (nextState)
100
98
101
99
override def mkHandlerCaseForState [T : WeakTypeTag ]: CaseDef = {
102
- val fun = This (tpnme .EMPTY )
100
+ val fun = This (typeNames .EMPTY )
103
101
val callOnComplete = futureSystemOps.onComplete[Any , Unit ](c.Expr [futureSystem.Fut [Any ]](awaitable.expr),
104
102
c.Expr [futureSystem.Tryy [Any ] => Unit ](fun), c.Expr [futureSystem.ExecContext ](Ident (name.execContext))).tree
105
103
val tryGetOrCallOnComplete : List [Tree ] =
@@ -118,7 +116,7 @@ trait ExprBuilder {
118
116
private def tryGetTree (tryReference : => Tree ) =
119
117
Assign (
120
118
Ident (awaitable.resultName),
121
- TypeApply (Select (futureSystemOps.tryyGet[Any ](c.Expr [futureSystem.Tryy [Any ]](tryReference)).tree, newTermName (" asInstanceOf" )), List (TypeTree (awaitable.resultType)))
119
+ TypeApply (Select (futureSystemOps.tryyGet[Any ](c.Expr [futureSystem.Tryy [Any ]](tryReference)).tree, TermName (" asInstanceOf" )), List (TypeTree (awaitable.resultType)))
122
120
)
123
121
124
122
/* if (tr.isFailure)
@@ -136,7 +134,7 @@ trait ExprBuilder {
136
134
Block (toList(futureSystemOps.completeProm[T ](
137
135
c.Expr [futureSystem.Prom [T ]](symLookup.memberRef(name.result)),
138
136
c.Expr [futureSystem.Tryy [T ]](
139
- TypeApply (Select (tryReference, newTermName (" asInstanceOf" )),
137
+ TypeApply (Select (tryReference, TermName (" asInstanceOf" )),
140
138
List (TypeTree (futureSystemOps.tryType[T ]))))).tree),
141
139
Return (literalUnit)),
142
140
getAndUpdateState
@@ -401,7 +399,7 @@ trait ExprBuilder {
401
399
val dotBuilder = new StringBuilder ()
402
400
dotBuilder.append(" digraph {\n " )
403
401
def stateLabel (s : Int ) = {
404
- if (s == 0 ) " INITIAL" else if (s == Int .MaxValue ) " TERMINAL" else switchIds.getOrElse(s, s). toString
402
+ if (s == 0 ) " INITIAL" else if (s == Int .MaxValue ) " TERMINAL" else switchIds.get(s).map(_. toString).getOrElse(s.toString)
405
403
}
406
404
val length = states.size
407
405
for ((state, i) <- asyncStates.zipWithIndex) {
@@ -521,25 +519,24 @@ trait ExprBuilder {
521
519
* }
522
520
*/
523
521
private def resumeFunTree [T : WeakTypeTag ]: Tree = {
524
- val stateMemberSymbol = symLookup.stateMachineMember(name.state)
525
522
val stateMemberRef = symLookup.memberRef(name.state)
526
- val body = Match (stateMemberRef, mkCombinedHandlerCases[T ] ++ initStates.flatMap(_.mkOnCompleteHandler[T ]) ++ List (CaseDef (Ident (nme .WILDCARD ), EmptyTree , Throw (Apply (Select (New (Ident (defn.IllegalStateExceptionClass )), termNames.CONSTRUCTOR ), List ())))))
523
+ val body = Match (stateMemberRef, mkCombinedHandlerCases[T ] ++ initStates.flatMap(_.mkOnCompleteHandler[T ]) ++ List (CaseDef (Ident (termNames .WILDCARD ), EmptyTree , Throw (Apply (Select (New (Ident (defn.IllegalStateExceptionClass )), termNames.CONSTRUCTOR ), List ())))))
527
524
val body1 = compactStates(body)
528
525
529
526
maybeTry(
530
527
body1,
531
528
List (
532
529
CaseDef (
533
- Bind (name.t, Typed (Ident (nme .WILDCARD ), Ident (defn.ThrowableClass ))),
530
+ Bind (name.t, Typed (Ident (termNames .WILDCARD ), Ident (defn.ThrowableClass ))),
534
531
EmptyTree , {
535
- val then = {
532
+ val thenn = {
536
533
val t = c.Expr [Throwable ](Ident (name.t))
537
534
val complete = futureSystemOps.completeProm[T ](
538
535
c.Expr [futureSystem.Prom [T ]](symLookup.memberRef(name.result)), futureSystemOps.tryyFailure[T ](t)).tree
539
536
Block (toList(complete), Return (literalUnit))
540
537
}
541
- If (Apply (Ident (defn.NonFatalClass ), List (Ident (name.t))), then , Throw (Ident (name.t)))
542
- then
538
+ If (Apply (Ident (defn.NonFatalClass ), List (Ident (name.t))), thenn , Throw (Ident (name.t)))
539
+ thenn
543
540
})), EmptyTree )
544
541
}
545
542
@@ -567,8 +564,8 @@ trait ExprBuilder {
567
564
}
568
565
569
566
def forever (t : Tree ): Tree = {
570
- val labelName = name.fresh(" while$" )
571
- LabelDef (labelName , Nil , Block (toList(t), Apply (Ident (labelName ), Nil )))
567
+ val termName = TermName ( name.fresh(" while$" ) )
568
+ LabelDef (termName , Nil , Block (toList(t), Apply (Ident (termName ), Nil )))
572
569
}
573
570
574
571
/**
@@ -584,7 +581,7 @@ trait ExprBuilder {
584
581
* }
585
582
*/
586
583
def onCompleteHandler [T : WeakTypeTag ]: Tree = {
587
- val onCompletes = initStates.flatMap(_.mkOnCompleteHandler[T ])
584
+ initStates.flatMap(_.mkOnCompleteHandler[T ])
588
585
forever {
589
586
adaptToUnit(toList(resumeFunTree))
590
587
}
@@ -617,7 +614,7 @@ trait ExprBuilder {
617
614
case _ if t.tpe != null => t.tpe
618
615
case Try (body, Nil , _) => tpeOf(body)
619
616
case Block (_, expr) => tpeOf(expr)
620
- case Literal (Constant (value)) if value == () => definitions.UnitTpe
617
+ case Literal (Constant (value)) if value == (() ) => definitions.UnitTpe
621
618
case Return (_) => definitions.NothingTpe
622
619
case _ => NoType
623
620
}
@@ -645,7 +642,7 @@ trait ExprBuilder {
645
642
def literalUnit = Literal (Constant (())) // a def to avoid sharing trees
646
643
647
644
def toList (tree : Tree ): List [Tree ] = tree match {
648
- case Block (stats, Literal (Constant (value))) if value == () => stats
645
+ case Block (stats, Literal (Constant (value))) if value == (() ) => stats
649
646
case _ => tree :: Nil
650
647
}
651
648
0 commit comments