Description
Compiler version
3.1.0
Minimization is still big, but self-contained.
Note, that code above create new scopes only via quotation API.
Minimized code
File1 (macroses)
package x
import scala.annotation._
import scala.quoted._
trait CB[+T]
object CBM:
def pure[T](t:T):CB[T] = ???
def map[A,B](fa:CB[A])(f: A=>B):CB[B] = ???
def flatMap[A,B](fa:CB[A])(f: A=>CB[B]):CB[B] = ???
def spawn[A](op: =>CB[A]): CB[A] = ???
@compileTimeOnly("await should be inside async block")
def await[T](f: CB[T]): T = ???
trait CpsExpr[T:Type](prev: Seq[Expr[?]]):
def fLast(using Quotes): Expr[CB[T]]
def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T]
def append[A:Type](chunk: CpsExpr[A])(using Quotes): CpsExpr[A]
def syncOrigin(using Quotes): Option[Expr[T]]
def map[A:Type](f: Expr[T => A])(using Quotes): CpsExpr[A] =
MappedCpsExpr[T,A](Seq(),this,f)
def flatMap[A:Type](f: Expr[T => CB[A]])(using Quotes): CpsExpr[A] =
FlatMappedCpsExpr[T,A](Seq(),this,f)
def transformed(using Quotes): Expr[CB[T]] =
import quotes.reflect._
Block(prev.toList.map(_.asTerm), fLast.asTerm).asExprOf[CB[T]]
case class GenericSyncCpsExpr[T:Type](prev: Seq[Expr[?]],last: Expr[T]) extends CpsExpr[T](prev):
override def fLast(using Quotes): Expr[CB[T]] =
'{ CBM.pure(${last}:T) }
override def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T] =
copy(prev = exprs ++: prev)
override def syncOrigin(using Quotes): Option[Expr[T]] =
import quotes.reflect._
Some(Block(prev.toList.map(_.asTerm), last.asTerm).asExprOf[T])
override def append[A:Type](e: CpsExpr[A])(using Quotes) =
e.prependExprs(Seq(last)).prependExprs(prev)
override def map[A:Type](f: Expr[T => A])(using Quotes): CpsExpr[A] =
copy(last = '{ $f($last) })
override def flatMap[A:Type](f: Expr[T => CB[A]])(using Quotes): CpsExpr[A] =
GenericAsyncCpsExpr[A](prev, '{ CBM.flatMap(CBM.pure($last))($f) } )
abstract class AsyncCpsExpr[T:Type](
prev: Seq[Expr[?]]
) extends CpsExpr[T](prev):
override def append[A:Type](e: CpsExpr[A])(using Quotes): CpsExpr[A] =
flatMap( '{ (x:T) => ${e.transformed} })
override def syncOrigin(using Quotes): Option[Expr[T]] = None
case class GenericAsyncCpsExpr[T:Type](
prev: Seq[Expr[?]],
fLastExpr: Expr[CB[T]]
) extends AsyncCpsExpr[T](prev):
override def fLast(using Quotes): Expr[CB[T]] = fLastExpr
override def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T] =
copy(prev = exprs ++: prev)
override def map[A:Type](f: Expr[T => A])(using Quotes): CpsExpr[A] =
MappedCpsExpr(Seq(),this,f)
override def flatMap[A:Type](f: Expr[T => CB[A]])(using Quotes): CpsExpr[A] =
FlatMappedCpsExpr(Seq(),this,f)
case class MappedCpsExpr[S:Type, T:Type](
prev: Seq[Expr[?]],
point: CpsExpr[S],
mapping: Expr[S=>T]
) extends AsyncCpsExpr[T](prev):
override def fLast(using Quotes): Expr[CB[T]] =
'{ CBM.map(${point.transformed})($mapping) }
override def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T] =
copy(prev = exprs ++: prev)
case class FlatMappedCpsExpr[S:Type, T:Type](
prev: Seq[Expr[?]],
point: CpsExpr[S],
mapping: Expr[S => CB[T]]
) extends AsyncCpsExpr[T](prev):
override def fLast(using Quotes): Expr[CB[T]] =
'{ CBM.flatMap(${point.transformed})($mapping) }
override def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T] =
copy(prev = exprs ++: prev)
class ValRhsFlatMappedCpsExpr[T:Type, V:Type](using thisQuotes: Quotes)
(
prev: Seq[Expr[?]],
oldValDef: quotes.reflect.ValDef,
cpsRhs: CpsExpr[V],
next: CpsExpr[T]
)
extends AsyncCpsExpr[T](prev) {
override def fLast(using Quotes):Expr[CB[T]] =
import quotes.reflect._
next.syncOrigin match
case Some(nextOrigin) =>
// owner of this block is incorrect
'{
CBM.map(${cpsRhs.transformed})((vx:V) =>
${buildAppendBlockExpr('vx, nextOrigin)})
}
case None =>
'{
CBM.flatMap(${cpsRhs.transformed})((v:V)=>
${buildAppendBlockExpr('v, next.transformed)})
}
override def prependExprs(exprs: Seq[Expr[?]]): CpsExpr[T] =
ValRhsFlatMappedCpsExpr(using thisQuotes)(exprs ++: prev,oldValDef,cpsRhs,next)
override def append[A:quoted.Type](e: CpsExpr[A])(using Quotes) =
ValRhsFlatMappedCpsExpr(using thisQuotes)(prev,oldValDef,cpsRhs,next.append(e))
private def buildAppendBlock(using Quotes)(rhs:quotes.reflect.Term,
exprTerm:quotes.reflect.Term): quotes.reflect.Term =
import quotes.reflect._
import scala.quoted.Expr
val castedOldValDef = oldValDef.asInstanceOf[quotes.reflect.ValDef]
val valDef = ValDef(castedOldValDef.symbol, Some(rhs.changeOwner(castedOldValDef.symbol)))
exprTerm match
case Block(stats,last) =>
Block(valDef::stats, last)
case other =>
Block(valDef::Nil,other)
private def buildAppendBlockExpr[A:Type](using Quotes)(rhs: Expr[V], expr:Expr[A]):Expr[A] =
import quotes.reflect._
buildAppendBlock(rhs.asTerm,expr.asTerm).asExprOf[A]
}
object CpsExpr:
def sync[T:Type](f: Expr[T]): CpsExpr[T] =
GenericSyncCpsExpr[T](Seq(), f)
def async[T:Type](f: Expr[CB[T]]): CpsExpr[T] =
GenericAsyncCpsExpr[T](Seq(), f)
object Async:
transparent inline def transform[T](inline expr: T) = ${
Async.transformImpl[T]('expr)
}
def transformImpl[T:Type](f: Expr[T])(using Quotes): Expr[CB[T]] =
import quotes.reflect._
println(s"before transformed: ${f.show}")
val cpsExpr = rootTransform[T](f)
val r = '{ CBM.spawn(${cpsExpr.transformed}) }
println(s"transformed value: ${r.show}")
r
def rootTransform[T:Type](f: Expr[T])(using Quotes): CpsExpr[T] = {
import quotes.reflect._
f match
case '{ while ($cond) { $repeat } } =>
val cpsRepeat = rootTransform(repeat.asExprOf[Unit])
CpsExpr.async('{
def _whilefun():CB[Unit] =
if ($cond) {
${cpsRepeat.flatMap('{(x:Unit) => _whilefun()}).transformed}
} else {
CBM.pure(())
}
_whilefun()
}.asExprOf[CB[T]])
case _ =>
val fTree = f.asTerm
fTree match {
case fun@Apply(fun1@TypeApply(obj2,targs2), args1) =>
if (obj2.symbol.name == "await") {
val awaitArg = args1.head
CpsExpr.async(awaitArg.asExprOf[CB[T]])
} else {
???
}
case Assign(left,right) =>
left match
case id@Ident(x) =>
right.tpe.widen.asType match
case '[r] =>
val cpsRight = rootTransform(right.asExprOf[r])
CpsExpr.async(
cpsRight.map[T](
'{ (x:r) => ${Assign(left,'x.asTerm).asExprOf[T] }
}).transformed )
case _ => ???
case Block(prevs,last) =>
val rPrevs = prevs.map{ p =>
p match
case v@ValDef(vName,vtt,optRhs) =>
optRhs.get.tpe.widen.asType match
case '[l] =>
val cpsRight = rootTransform(optRhs.get.asExprOf[l])
ValRhsFlatMappedCpsExpr(using quotes)(Seq(), v, cpsRight, CpsExpr.sync('{}))
case t: Term =>
// TODO: rootTransform
t.asExpr match
case '{ $p: tp } =>
rootTransform(p)
case other =>
printf(other.show)
throw RuntimeException(s"can't handle term in block: $other")
case other =>
printf(other.show)
throw RuntimeException(s"unknown tree type in block: $other")
}
val rLast = rootTransform(last.asExprOf[T])
val blockResult = rPrevs.foldRight(rLast)((e,s) => e.append(s))
val retval = CpsExpr.async(blockResult.transformed)
retval
//BlockTransform(cpsCtx).run(prevs,last)
case id@Ident(name) =>
CpsExpr.sync(id.asExprOf[T])
case tid@Typed(Ident(name), tp) =>
CpsExpr.sync(tid.asExprOf[T])
case matchTerm@Match(scrutinee, caseDefs) =>
val nCases = caseDefs.map{ old =>
CaseDef.copy(old)(old.pattern, old.guard, rootTransform(old.rhs.asExprOf[T]).transformed.asTerm)
}
CpsExpr.async(Match(scrutinee, nCases).asExprOf[CB[T]])
case inlinedTerm@ Inlined(call,List(),body) =>
rootTransform(body.asExprOf[T])
case constTerm@Literal(_)=>
CpsExpr.sync(constTerm.asExprOf[T])
case _ =>
throw RuntimeException(s"language construction is not supported: ${fTree}")
}
}
File2:
package x
object VP1:
///*
def allocateServiceOperator(optInUsername: Option[String]): CB[Unit] = Async.transform {
val username = optInUsername match
case None =>
while(false) {
val nextResult = await(op1())
val countResult = await(op1())
}
case Some(inUsername) =>
val x = await(op1())
inUsername
}
//*/
def op1(): CB[String] = ???
Output (click arrow to expand)
(inUsername: java.lang.String)
}
()
}
transformed value: x.CBM.spawn[scala.Unit](x.CBM.map[scala.Unit | java.lang.String, scala.Unit](optInUsername match {
case scala.None =>
{
def _whilefun(): x.CB[scala.Unit] = if (false) x.CBM.flatMap[scala.Unit, scala.Unit](x.CBM.flatMapjava.lang.String, scala.Unit(((v: java.lang.String) => {
val nextResult: java.lang.String = v
x.CBM.mapjava.lang.String, scala.Unit(((vx: java.lang.String) => {
val countResult: java.lang.String = vx
()
}))
})))(((x: scala.Unit) => _whilefun())) else x.CBM.purescala.Unit
_whilefun()
}
case scala.Some(inUsername) =>
x.CBM.mapjava.lang.String, scala.Unit | java.lang.String(((vx₂
: java.lang.String) => {
val x₂
: java.lang.String = vx₂
(inUsername: java.lang.String)
}))
})(((vx₃
: scala.Unit | java.lang.String) => {
val username: scala.Matchable = vx₃
()
})))
[warn] -- [E129] Potential Issue Warning: /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala:6:90
[warn] 6 | def allocateServiceOperator(optInUsername: Option[String]): CB[Unit] = Async.transform {
[warn] | ^
[warn] |A pure expression does nothing in statement position; you may be omitting necessary parentheses
[warn] | This location contains code that was inlined from VP1.scala:6
[warn] 7 | val username = optInUsername match
[warn] 8 | case None =>
[warn] 9 | while(false) {
[warn] 10 | val nextResult = await(op1())
[warn] 11 | val countResult = await(op1())
[warn] 12 | }
[warn] 13 | case Some(inUsername) =>
[warn] 14 | val x = await(op1())
[warn] 15 | inUsername
[warn] 16 | }
java.util.NoSuchElementException: key not found: method $anonfun while traversing <inUsername#9650:String/T#819>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <<inUsername#9650:String/T#819> :String/T#819:String/T#819>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
val x#11356: String/T#819
<<inUsername#9650:String/T#819> :String/T#819:String/T#819>
}
:String/T#819>
java.util.NoSuchElementException: key not found: method $anonfun while traversing def $anonfun#11353(vx#862275614: String/T#819): Object/T
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(<$anonfun#11353:(vx#862275614: String/T#819): Object/T>):
Function1/T#217
>
}
:Function1/T#217>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
(<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():x#25.CB/T#3993>,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(<$anonfun#11353:(vx#862275614: String/T#819): Object/T>):
Function1/T#217
>
}
:Function1/T#217>
):x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
>
(<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():x#25.CB/T#3993>,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(<$anonfun#11353:(vx#862275614: String/T#819): Object/T>):
Function1/T#217
>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
>
(<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():x#25.CB/T#3993>,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(<$anonfun#11353:(vx#862275614: String/T#819): Object/T>):
Function1/T#217
>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
>
(<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():x#25.CB/T#3993>,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(<$anonfun#11353:(vx#862275614: String/T#819): Object/T>
)
:Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <if
<
<<[Unique x 1]#11848:Option/T#82>.isInstanceOf#3815:
([X0/T#1581425209 <: Object/T]#1581425209 => Boolean/T#94)
>
[Some/T#328]:Boolean/T#94>
then
<
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217
):
x#25.CB/T#3993)
>
(<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():x#25.CB/T#3993>,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(
<$anonfun#11353:(vx#862275614: String/T#819): Object/T>
):Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
case val [Unique x 1]#11848: Option/T#82
<if
<<<None#257:None/T#258>.==#1867:((x$0#478617181: Object/T): Boolean/T#94)>
(
<[Unique x 1]#11848:Option/T#82>):Boolean/T#94>
then
<return[[Unique matchResult 1]]
<
{
def _whilefun#11377(): x#25.CB/T#3993
<<_whilefun#11377:((): x#25.CB/T#3993)>():x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<if
<
<<[Unique x 1]#11848:Option/T#82>.isInstanceOf#3815:
([X0/T#1581425209 <: Object/T]#1581425209 => Boolean/T#94)
>
[Some/T#328]:Boolean/T#94>
then
<
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597:
Function1/T#217
): x#25.CB/T#3993)
>
(
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():
x#25.CB/T#3993
>
,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(
<$anonfun#11353:(vx#862275614: String/T#819): Object/T>
):Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<throw
<
<<new MatchError/T#331:MatchError/T#331>:
((obj#138727514: Object/T): MatchError/T#331)
>
(<[Unique x 1]#11848:Option/T#82>):MatchError/T#331>
:Nothing/T#1314>
}
:Nothing/T#1314>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <[Unique matchResult 1][x#25.CB/T#3993]:
<
{
case val [Unique x 1]#11848: Option/T#82
<if
<
<<None#257:None/T#258>.==#1867:
((x$0#478617181: Object/T): Boolean/T#94)
>
(<[Unique x 1]#11848:Option/T#82>):Boolean/T#94>
then
<return[[Unique matchResult 1]]
<
{
def _whilefun#11377(): x#25.CB/T#3993
<<_whilefun#11377:((): x#25.CB/T#3993)>():x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<if
<
<<[Unique x 1]#11848:Option/T#82>.isInstanceOf#3815:
([X0/T#1581425209 <: Object/T]#1581425209 => Boolean/T#94)
>
[Some/T#328]:Boolean/T#94>
then
<
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597:
Function1/T#217
): x#25.CB/T#3993)
>
(
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():
x#25.CB/T#3993
>
,
<
{
def $anonfun#11353(vx#862275614: String/T#819): Object/T
<closure(
<$anonfun#11353:(vx#862275614: String/T#819): Object/T
>
):Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<throw
<
<<new MatchError/T#331:MatchError/T#331>:
((obj#138727514: Object/T): MatchError/T#331)
>
(<[Unique x 1]#11848:Option/T#82>):MatchError/T#331>
:Nothing/T#1314>
}
:Nothing/T#1314>
:x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
(
<[Unique matchResult 1][x#25.CB/T#3993]:
<
{
case val [Unique x 1]#11848: Option/T#82
<if
<
<<None#257:None/T#258>.==#1867:
((x$0#478617181: Object/T): Boolean/T#94)
>
(<[Unique x 1]#11848:Option/T#82>):Boolean/T#94>
then
<return[[Unique matchResult 1]]
<
{
def _whilefun#11377(): x#25.CB/T#3993
<<_whilefun#11377:((): x#25.CB/T#3993)>():x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<if
<
<<[Unique x 1]#11848:Option/T#82>.isInstanceOf#3815:
([X0/T#1581425209 <: Object/T]#1581425209 => Boolean/T#94)
>
[Some/T#328]:Boolean/T#94>
then
<
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597:
Function1/T#217
): x#25.CB/T#3993)
>
(
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():
x#25.CB/T#3993
>
,
<
{
def $anonfun#11353
(vx#862275614: String/T#819): Object/T
<closure(
<$anonfun#11353:
(vx#862275614: String/T#819): Object/T
>
):Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<throw
<
<<new MatchError/T#331:MatchError/T#331>:
((obj#138727514: Object/T): MatchError/T#331)
>
(<[Unique x 1]#11848:Option/T#82>):MatchError/T#331>
:Nothing/T#1314>
}
:Nothing/T#1314>
:x#25.CB/T#3993>
,
<
{
def $anonfun#11364(vx#46920594: Object/T): Unit/T#157
<closure(<$anonfun#11364:(vx#46920594: Object/T): Unit/T#157>:
scala#23.runtime#430.function#7204.JProcedure1/T#18612
):scala#23.runtime#430.function#7204.JProcedure1/T#18612>
}
:scala#23.runtime#430.function#7204.JProcedure1/T#18612>
):x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597: Function1/T#217):
x#25.CB/T#3993
)
>
(
<[Unique matchResult 1][x#25.CB/T#3993]:
<
{
case val [Unique x 1]#11848: Option/T#82
<if
<
<<None#257:None/T#258>.==#1867:
((x$0#478617181: Object/T): Boolean/T#94)
>
(<[Unique x 1]#11848:Option/T#82>):Boolean/T#94>
then
<return[[Unique matchResult 1]]
<
{
def _whilefun#11377(): x#25.CB/T#3993
<<_whilefun#11377:((): x#25.CB/T#3993)>():x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<if
<
<<[Unique x 1]#11848:Option/T#82>.isInstanceOf#3815:
([X0/T#1581425209 <: Object/T]#1581425209 => Boolean/T#94)
>
[Some/T#328]:Boolean/T#94>
then
<
{
case val inUsername#9650: String/T#819
<return[[Unique matchResult 1]]
<
{
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
((fa#1425139597: x#25.CB/T#3993, f#1425139597:
Function1/T#217
): x#25.CB/T#3993)
>
(
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993)>():
x#25.CB/T#3993
>
,
<
{
def $anonfun#11353
(vx#862275614: String/T#819): Object/T
<closure(
<$anonfun#11353:
(vx#862275614: String/T#819): Object/T
>
):Function1/T#217>
}
:Function1/T#217>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
:Nothing/T#1314>
}
:Nothing/T#1314>
else <():Unit/T#157>:Unit/T#157>
<throw
<
<<new MatchError/T#331:MatchError/T#331>:
((obj#138727514: Object/T): MatchError/T#331)
>
(<[Unique x 1]#11848:Option/T#82>):MatchError/T#331>
:Nothing/T#1314>
}
:Nothing/T#1314>
:x#25.CB/T#3993>
,
<
{
def $anonfun#11364(vx#46920594: Object/T): Unit/T#157
<closure(<$anonfun#11364:(vx#46920594: Object/T): Unit/T#157>:
scala#23.runtime#430.function#7204.JProcedure1/T#18612
):scala#23.runtime#430.function#7204.JProcedure1/T#18612>
}
:scala#23.runtime#430.function#7204.JProcedure1/T#18612>
):x#25.CB/T#3993>
}
:x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing def $anonfun#12369(): x#25.CB/T#3993
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
{
def $anonfun#12369(): x#25.CB/T#3993
<closure(<$anonfun#12369:(): x#25.CB/T#3993>:Function0/T#127):
Function0/T#127
>
}
:Function0/T#127>
java.util.NoSuchElementException: key not found: method $anonfun while traversing <
<<x#25.CBM#3997:x#25.CBM/T#3998>.spawn#11259:
((op#155756685: Function0/T#127): x#25.CB/T#3993)
(
<
{
def $anonfun#12369(): x#25.CB/T#3993
<closure(<$anonfun#12369:(): x#25.CB/T#3993>:Function0/T#127):
Function0/T#127
>
}
:Function0/T#127>
):x#25.CB/T#3993>
java.util.NoSuchElementException: key not found: method $anonfun while traversing def allocateServiceOperator#6133
(optInUsername#2088808554: Option/T#82): x#25.CB/T#3993
java.util.NoSuchElementException: key not found: method $anonfun while traversing extends Object/T {
def #6132(): x#25.VP1/T#4021
private def writeReplace#11424(): Object/T
def allocateServiceOperator#6133
(optInUsername#2088808554: Option/T#82): x#25.CB/T#3993
def op1#6134(): x#25.CB/T#3993
}
java.util.NoSuchElementException: key not found: method $anonfun while traversing @<
<
<new scala#23.annotation#428.internal#4101.SourceFile/T#7298:
scala#23.annotation#428.internal#4101.SourceFile/T#7298
>
:
((path#1184953675: String/T#819):
scala#23.annotation#428.internal#4101.SourceFile/T#7298
)
(
<"shared/src/test/scala/cps/vp/VP1.scala":
("shared/src/test/scala/cps/vp/VP1.scala" : String/T#819)
):scala#23.annotation#428.internal#4101.SourceFile/T#7298> final module class
VP1/T#4021
extends Object/T {
def #6132(): x#25.VP1/T#4021
private def writeReplace#11424(): Object/T
def allocateServiceOperator#6133
(optInUsername#2088808554: Option/T#82): x#25.CB/T#3993
def op1#6134(): x#25.CB/T#3993
}
java.util.NoSuchElementException: key not found: method $anonfun while traversing <package <x#25:x/T#26> {
final lazy module object VP1#4020: x#25.VP1/T#4021
@<
<
<new scala#23.annotation#428.internal#4101.SourceFile/T#7298:
scala#23.annotation#428.internal#4101.SourceFile/T#7298
>
:
((path#1184953675: String/T#819):
scala#23.annotation#428.internal#4101.SourceFile/T#7298
)
>
(
<"shared/src/test/scala/cps/vp/VP1.scala":
("shared/src/test/scala/cps/vp/VP1.scala" : String/T#819)
>
):scala#23.annotation#428.internal#4101.SourceFile/T#7298> final module class
VP1/T#4021
extends Object/T {
def #6132(): x#25.VP1/T#4021
private def writeReplace#11424(): Object/T
def allocateServiceOperator#6133
(optInUsername#2088808554: Option/T#82): x#25.CB/T#3993
def op1#6134(): x#25.CB/T#3993
}
}:x#25.type>
[info] exception occurred while compiling /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala
java.util.NoSuchElementException: key not found: method $anonfun while compiling /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala
[error] ## Exception when compiling 1 sources to /Users/rssh/work/oss/dotty-cps/dotty-cps-async/jvm/target/scala-3.1.0/test-classes
[error] java.util.NoSuchElementException: key not found: method $anonfun
[error] scala.collection.MapOps.default(Map.scala:274)
[error] scala.collection.MapOps.default$(Map.scala:273)
[error] scala.collection.AbstractMap.default(Map.scala:405)
[error] scala.collection.MapOps.apply(Map.scala:176)
[error] scala.collection.MapOps.apply$(Map.scala:175)
[error] scala.collection.AbstractMap.apply(Map.scala:405)
[error] dotty.tools.dotc.transform.Dependencies.narrowLogicOwner(Dependencies.scala:81)
[error] dotty.tools.dotc.transform.Dependencies.markFree(Dependencies.scala:147)
[error] dotty.tools.dotc.transform.Dependencies.markFree(Dependencies.scala:145)
[error] dotty.tools.dotc.transform.Dependencies.process(Dependencies.scala:187)
[error] dotty.tools.dotc.transform.LambdaLift$$anon$1.process(LambdaLift.scala:41)
[error] dotty.tools.dotc.transform.LambdaLift$$anon$1.process(LambdaLift.scala:40)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:217)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1549)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1610)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1541)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1567)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1557)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1565)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1541)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1610)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1555)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1541)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1610)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1617)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1614)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1647)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.fold$1(Trees.scala:1522)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.apply(Trees.scala:1524)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1623)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1648)
[error] dotty.tools.dotc.transform.Dependencies$CollectDependencies.traverse(Dependencies.scala:218)
[error] dotty.tools.dotc.transform.Dependencies.(Dependencies.scala:260)
[error] dotty.tools.dotc.transform.LambdaLift$$anon$1.(LambdaLift.scala:36)
[error] dotty.tools.dotc.transform.LambdaLift$Lifter.(LambdaLift.scala:49)
[error] dotty.tools.dotc.transform.LambdaLift.prepareForUnit(LambdaLift.scala:288)
[error] dotty.tools.dotc.transform.MegaPhase.prepUnit(MegaPhase.scala:1040)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:447)
[error] dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:460)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:308)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:309)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:261)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:272)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:280)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:289)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:222)
[error] dotty.tools.dotc.Run.compile(Run.scala:206)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
[error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:192)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.
</details>
when adding -Ycheck:all.
<details>
[info] checking /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala after phase typer
exception while typing <
{
def $anonfun#11353(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(<$anonfun#11353:(vx#1106157922: String/T): Unit/T#157 |/T String/T>
)
:String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T> of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing <
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>():
x#25.CB/T#3993[String/T#6171]
>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:(vx#1106157922: String/T): Unit/T#157 |/T String/T>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]> of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing <
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>():
x#25.CB/T#3993[String/T#6171]
>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:(vx#1106157922: String/T): Unit/T#157 |/T String/T>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing <
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>():
x#25.CB/T#3993[String/T#6171]
>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]> of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing <<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]): Option/T#82[String/T])
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>():
x#25.CB/T#3993[String/T#6171]
>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]> of class class dotty.tools.dotc.ast.Trees$Match # -1
exception while typing <
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]): Option/T#82[String/T])
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>():
x#25.CB/T#3993[String/T#6171]
>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing <
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]): Option/T#82[String/T])
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<<x#25.VP1#4020.op1#6134:((): x#25.CB/T#3993[String/T#6171])>(
)
:x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
> of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing <
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]): Option/T#82[String/T])
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing <
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing <
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T
):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing <
<
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>():
x#25.CB/T#3993[Unit/T#157]
>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521
):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T String/T
):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T):
x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing <
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.spawn#11259:
([A/T#20758714]#20758714
(op#1877547584: => x#25.CB/T#3993[A/T#20758714]):
x#25.CB/T#3993[A/T#20758714]
)
>
[Unit/T#157]:
((op#124703058: => x#25.CB/T#3993[Unit/T#157]): x#25.CB/T#3993[Unit/T#157])
>
(
<
<
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<<_whilefun#11377:((): x#25.CB/T#3993[Unit/T#157])>(
)
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521
):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T
String/T
): x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T String/T
):
x#25.CB/T#3993[Unit/T#157 |/T String/T])
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
):x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing <
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.spawn#11259:
([A/T#20758714]#20758714
(op#1877547584: => x#25.CB/T#3993[A/T#20758714]):
x#25.CB/T#3993[A/T#20758714]
)
>
[Unit/T#157]:
((op#124703058: => x#25.CB/T#3993[Unit/T#157]): x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377(): x#25.CB/T#3993[Unit/T#157]
<
<_whilefun#11377:
((): x#25.CB/T#3993[Unit/T#157])
>
():x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521]
)
(f#539037251: A/T#765707521 => B/T#765707521
):
x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T
String/T
): x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T
String/T
): x#25.CB/T#3993[Unit/T#157 |/T String/T])
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing <
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.spawn#11259:
([A/T#20758714]#20758714
(op#1877547584: => x#25.CB/T#3993[A/T#20758714]):
x#25.CB/T#3993[A/T#20758714]
)
>
[Unit/T#157]:
((op#124703058: => x#25.CB/T#3993[Unit/T#157]):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<
{
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691: x#25.CB/T#3993[A/T#765707521])
(f#539037251: A/T#765707521 => B/T#765707521):
x#25.CB/T#3993[B/T#765707521]
)
>
[Unit/T#157 |/T String/T, Unit/T#157]:
((fa#1688308182: x#25.CB/T#3993[Unit/T#157 |/T String/T])
(f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
<<optInUsername#6166:Option/T#82[String/T#6171]> match
{
<case <None#257:None/T#258> =>
<
<
{
def _whilefun#11377
(): x#25.CB/T#3993[Unit/T#157]
<
<_whilefun#11377:
((): x#25.CB/T#3993[Unit/T#157])
>
():x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
<case
<
<
<
<<Some#329:Some/T#330>.unapply#8310:
([A/T#6131992]#6131992
(x$0#873007710: Some/T#328[A/T#6131992]):
Option/T#82[A/T#6131992]
)
>
[String/T]:
((x$0#459916360: Some/T#328[String/T]):
Option/T#82[String/T]
)
>
(inUsername @ <_:String/T>):Some/T#328[String/T]>
:Some/T#328[String/T]:Some/T#328[String/T]>
=>
<
<
<
<
<<x#25.CBM#3997:x#25.CBM/T#3998>.map#11257:
([A/T#765707521, B/T#765707521]#765707521
(fa#429861691:
x#25.CB/T#3993[A/T#765707521]
)
(f#539037251: A/T#765707521 =>
B/T#765707521
): x#25.CB/T#3993[B/T#765707521]
)
>
[String/T, Unit/T#157 |/T String/T]:
((fa#1297687496: x#25.CB/T#3993[String/T])
(f#1696755510: String/T => Unit/T#157 |/T
String/T
): x#25.CB/T#3993[Unit/T#157 |/T String/T]
)
>
(
<
<
<x#25.VP1#4020.op1#6134:
((): x#25.CB/T#3993[String/T#6171])
>
():x#25.CB/T#3993[String/T#6171]>
:x#25.CB/T#3993[String/T#6171]>
):
((f#1696755510: String/T => Unit/T#157 |/T
String/T
): x#25.CB/T#3993[Unit/T#157 |/T String/T])
>
(
<
{
def $anonfun#11353
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
<closure(
<$anonfun#11353:
(vx#1106157922: String/T): Unit/T#157 |/T
String/T
>
):String/T => Unit/T#157 |/T String/T>
}
:String/T => Unit/T#157 |/T String/T>
):x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
}
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
:x#25.CB/T#3993[Unit/T#157 |/T String/T]>
):
((f#776961165: Unit/T#157 |/T String/T => Unit/T#157):
x#25.CB/T#3993[Unit/T#157]
)
>
(
<
{
def $anonfun#11364
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
<closure(
<$anonfun#11364:
(vx#605816902: Unit/T#157 |/T String/T): Unit/T#157
>
):Unit/T#157 |/T String/T => Unit/T#157>
}
:Unit/T#157 |/T String/T => Unit/T#157>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
}
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
):x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]>
:x#25.CB/T#3993[Unit/T#157]> of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing def allocateServiceOperator#6133
(optInUsername#1376812582: Option/T#82[String/T#6171]):
x#25.CB/T#3993[Unit/T#157] of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing final module class VP1/T#4021() extends <
<<new Object/T:Object/T>:((): Object/T)>
():Object/T> { this: x#25.VP1#4020.type =>
def allocateServiceOperator#6133
(optInUsername#1376812582: Option/T#82[String/T#6171]):
x#25.CB/T#3993[Unit/T#157]
def op1#6134(): x#25.CB/T#3993[String/T#6171]
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing <package <x#25:x/T#26> {
final lazy module object VP1#4020: x#25.VP1/T#4021
final module class VP1/T#4021() extends <
<<new Object/T:Object/T>:((): Object/T)>
():Object/T> { this: x#25.VP1#4020.type =>
def allocateServiceOperator#6133
(optInUsername#1376812582: Option/T#82[String/T#6171]):
x#25.CB/T#3993[Unit/T#157]
def op1#6134(): x#25.CB/T#3993[String/T#6171]
}
}:x#25.type> of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
*** error while checking /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala after phase typer ***
[info] exception occurred while compiling /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala
java.lang.AssertionError: assertion failed: bad owner; method $anonfun#11353 has owner method $anonfun#11266, expected was method allocateServiceOperator#6133
owner chain = method $anonfun#11353, method $anonfun#11266, value macro#9646, method allocateServiceOperator#6133, object VP1/T, package x/T#26, package <root>/T#2, ctxOwners = method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, object VP1/T, object VP1/T, object VP1/T, package x/T#26, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, <none>#0, <none>#0, <none>#0, <none>#0 while compiling /Users/rssh/work/oss/dotty-cps/dotty-cps-async/shared/src/test/scala/cps/vp/VP1.scala
[error] ## Exception when compiling 1 sources to /Users/rssh/work/oss/dotty-cps/dotty-cps-async/jvm/target/scala-3.1.0/test-classes
[error] java.lang.AssertionError: assertion failed: bad owner; method $anonfun#11353 has owner method $anonfun#11266, expected was method allocateServiceOperator#6133
[error] owner chain = method $anonfun#11353, method $anonfun#11266, value macro#9646, method allocateServiceOperator#6133, object VP1/T, package x/T#26, package <root>/T#2, ctxOwners = method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, method allocateServiceOperator#6133, object VP1/T, object VP1/T, object VP1/T, package x/T#26, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, package <root>/T#2, <none>#0, <none>#0, <none>#0, <none>#0
[error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.checkOwner(TreeChecker.scala:455)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.typedStats$$anonfun$1(TreeChecker.scala:545)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:548)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1027)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1031)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$2$$anonfun$1(TreeChecker.scala:531)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:192)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:531)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.withBlock(TreeChecker.scala:220)
[error] dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:531)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2763)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)....
</details>