You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to minimize this by commenting parts out, but no luck (also most definitions depend on each other).
importscala.compiletime.ops.int.Simportscala.compiletime.ops.string.+importscala.deriving.Mirrorimportscala.annotation.{implicitNotFound}
objectgenrec {
/** Fold a tuple just like Tuple.Fold but with typed upper bounds */typeTupleFold[T<:Tuple, UpperBound, Z<:UpperBound, F[_ <:UpperBound, _ <:UpperBound] <:UpperBound] <:UpperBound=TmatchcaseEmptyTuple=>Zcase h *: t =>F[Z, TupleFold[t, UpperBound, h, F]]
typeTupleReduce[Tup<:Tuple, UpperBound, F[_ <:UpperBound, _ <:UpperBound] <:UpperBound] <:UpperBound=Tupmatch {
case h *: t =>TupleFold[t, UpperBound, h, F]
}
/** Map a tuple just like Tuple.Map but with typed upper bounds */typeTupleMap[T<:Tuple, UpperBound, F[_ <:UpperBound]] <:Tuple=TmatchcaseEmptyTuple=>EmptyTuplecase h *: t =>F[h] *:TupleMap[t, UpperBound, F]
/*erased*/traitTypeWitness[N]:typeT=N/*erased*/given [T]:TypeWitness[T] =nullobjectopaques {
@scala.annotation.showAsInfix
opaquetype@@[S<:String&Singleton, +T] >:T=Textension [T<:String&Singleton](t: T) def@@[V](v: V):T@@V= v
}
exportopaques.*typeFieldName[T<:@@[String&Singleton, Any]] <:String=Tmatch {
case@@[nme, _] => nme
}
typeFieldNames[T<:Tuple] =TupleMap[T, @@[String&Singleton, Any], FieldName]
typeFieldType[T<:@@[String&Singleton, Any]] =Tmatch {
case@@[_, tpe] => tpe
}
typeFieldToString[T<:@@[String&Singleton, Any]] <:String=Tmatch {
case@@[name, tpe] => name +": "+ tpe
}
extension [K<:String&Singleton, T](f: K@@T) inlinedefvalue:T= f.asInstanceOf[T]
typeIndexOf[Rec<:Tuple, Field] <:Int=Recmatch {
case h *: t => h match { //use invariant type comparison by abusing Set trickcaseField=>0case _ =>S[IndexOf[t, Field]]
}
}
typeFieldToTuple[T<:@@[String&Singleton, Any]] <:Tuple=Tmatch {
case@@[nme, tpe] => (nme, tpe)
}
typeIndexOfField[Rec<:Tuple, Field<:@@[String&Singleton, Any]] =IndexOf[Rec, Field]
typeWidenTuple[T<:Tuple] <:Tuple=Tmatch {
caseEmptyTuple=>EmptyTuplecase h *: tail => h *: tail
}
givenProdOps:AnyRefwith {
extension [P<:Product](p: P)(usinggen: Generic[P]) {
defdelField(field: String&Singleton)
(using/*erased*/w: TypeWitness[IndexOf[FieldNames[gen.Out], field.type]])
(usingi: ValueOf[w.T]):Tuple.Concat[Tuple.Take[gen.Out, w.T], Tuple.Drop[gen.Out, S[w.T]]] =valarr= scala.runtime.Tuples.toIArray(gen.toGen(p))
valres=newArray[Object](arr.length -1)
System.arraycopy(arr, 0, res, 0, i.value)
System.arraycopy(arr, i.value +1, res, i.value, arr.length - i.value -1)
scala.runtime.Tuples.fromArray(res).asInstanceOf[Tuple.Concat[Tuple.Take[gen.Out, w.T], Tuple.Drop[gen.Out, S[w.T]]]]
defrenameField(field: String&Singleton, to: String&Singleton)
(using/*erased*/w: TypeWitness[IndexOf[FieldNames[gen.Out], field.type]])
(usingi: ValueOf[w.T]):Tuple.Concat[Tuple.Take[gen.Out, w.T], (to.type@@FieldType[Tuple.Elem[gen.Out, w.T]]) *:Tuple.Drop[gen.Out, S[w.T]]] =
gen.toGen(p).asInstanceOf[Tuple.Concat[Tuple.Take[gen.Out, w.T], (to.type@@FieldType[Tuple.Elem[gen.Out, w.T]]) *:Tuple.Drop[gen.Out, S[w.T]]]]
def+[K<:String&Singleton, V](field: K@@V):Tuple.Concat[gen.Out, (K@@V) *:EmptyTuple] =
gen.toGen(p) ++ (field *:EmptyTuple)
defreplaceField[NewValueType](field: String&Singleton)
(using/*erased*/w: TypeWitness[IndexOf[FieldNames[gen.Out], field.type]])
(usingi: ValueOf[w.T])
(f: FieldType[Tuple.Elem[gen.Out, w.T]] =>NewValueType):Tuple.Concat[Tuple.Take[gen.Out, w.T], (field.type@@NewValueType) *:Tuple.Drop[gen.Out, S[w.T]]] =valres= scala.runtime.Tuples.toArray(gen.toGen(p))
valprev= res(i.value).asInstanceOf[FieldType[Tuple.Elem[gen.Out, w.T]]]
valnewv= f(prev)
res(i.value) = newv.asInstanceOf[Object]
scala.runtime.Tuples.fromArray(res).asInstanceOf[Tuple.Concat[Tuple.Take[gen.Out, w.T], (field.type@@NewValueType) *:Tuple.Drop[gen.Out, S[w.T]]]]
deftoProd[Prd<:Product](usingm: Mirror.ProductOf[Prd]): m.MirroredMonoType= m.fromProduct(gen.toGen(p))
defselect(fieldName: String&Singleton)(usings: SelectByName[fieldName.type, gen.Out]): s.Out= s.apply(gen.toGen(p))[fieldName.type]
deffield(fieldName: String&Singleton)
(using/*erased*/w: TypeWitness[IndexOf[FieldNames[gen.Out], fieldName.type]])
(usingi: ValueOf[w.T]):Tuple.Elem[gen.Out, w.T] =
p.productElement(i.value).asInstanceOf[Tuple.Elem[gen.Out, w.T]]
defpruneTo[Tup2<:Tuple](usingsr: SubRow[gen.Out, Tup2]):Tup2= sr.asSubRecord(gen.toGen(p))
deftransmogrify[P2<:Product](usinggen2: Generic[P2], sr: SubRow[gen.Out, gen2.Out], m: Mirror.ProductOf[P2]):P2= m.fromProduct(sr.asSubRecord(gen.toGen(p)))
}
}
traitGeneric[Prod<:Product] {
typeOut<:TupledeftoGen(prod: Prod):Outextension (prod: Prod) defgen:Out= toGen(prod)
}
objectGenericextendsGenericLowPriority {
typeAux[Prod<:Product, _Out <:Tuple] =Generic[Prod] { typeOut= _Out}
transparentinlinedefof[Prod<:Product] = scala.compiletime.summonInline[Generic[Prod]]
typeIsRecord[Rec<:Tuple] =Recmatch {
caseEmptyTuple=>truecase a *: tail => a match {
case@@[?, ?] =>IsRecord[tail]
case _ =>false
}
}
privatevalidentityGeneric=newGeneric[Tuple] {
typeOut=TupledeftoGen(t: Tuple) = t
}
giventuplesGeneric[Rec<:Tuple](usingIsRecord[Rec] =:=true):Generic.Aux[Rec, Rec] = identityGeneric.asInstanceOf[Generic.Aux[Rec, Rec]]
}
traitGenericLowPriority { self: Generic.type=>givenproductsGeneric[Prod<:Product](usingm: Mirror.ProductOf[Prod]):Generic.Aux[
Prod,
WidenTuple[Tuple.Map[Tuple.Zip[m.MirroredElemLabels, m.MirroredElemTypes], [Entry] =>>Entrymatch {
case (nme, tpe) => nme @@ tpe
}]]
] =newGeneric[Prod] {
typeOut=WidenTuple[Tuple.Map[Tuple.Zip[m.MirroredElemLabels, m.MirroredElemTypes], [Entry] =>>Entrymatch {
case (nme, tpe) => nme @@ tpe
}]]
deftoGen(prod: Prod):Out=valr= prod.productIterator.map(v => ("s"@@ v).asInstanceOf[Object]).toArray
scala.runtime.Tuples.fromArray(r).asInstanceOf[Out]
}
}
typeFieldSet[Rec<:Tuple] =Tuple.Union[Tuple.Map[Rec, FieldToTuple]]
typeMissingFields[Rec<:Tuple, AvailableFields] <:Tuple=Recmatch {
caseEmptyTuple=>EmptyTuplecase h *: t =>FieldToTuple[h] match {
caseAvailableFields=>MissingFields[t, AvailableFields]
case _ => h *:MissingFields[t, AvailableFields]
}
}
/** Read field [[Field]] from [[Rec]] */@implicitNotFound("Field with name ${Field} is not present in ${Rec}")
traitSelectByName[Field<:String&Singleton, Rec<:Tuple] {
typeOutextension (r: Rec) defapply[F<:Field]:Out
}
objectSelectByName {
typeAux[Field<:String&Singleton, Rec<:Tuple, O] =SelectByName[Field, Rec] { typeOut=O }
given [T, Field<:String&Singleton, Rec<:Tuple]
// (using /*erased*/ w: TypeWitness[IndexOf[TupleMap[Rec, @@[String & Singleton, Any], FieldName], Field]])
(using/*erased*/w: TypeWitness[IndexOf[Tuple.Map[Rec, FieldName], Field]])
(usingv: ValueOf[w.T]):Aux[Field, Rec, FieldType[Tuple.Elem[Rec, w.T]]] =newSelectByName[Field, Rec] {
typeOut=FieldType[Tuple.Elem[Rec, w.T]]
extension (r: Rec) defapply[F<:Field] = r.productElement(v.value).asInstanceOf[@@[Field, Out]].value
}
}
/** Typeclass denoting that [[T]] is a subrow of [[Rec]], this allows to select every field from [[Rec]] in [[T]] */@implicitNotFound("can't prove that ${T} is a subrow of ${Rec}")
traitSubRow[T, Rec<:Tuple] {
/** Read [[FieldName] value * Note: the SelectByName is /*erased*/, it's only there to ensure via the compiler that you're trying to read one of the * fields defined in the SubRow*/extension (r: T)
defapply[FieldName<:String&Singleton](usingValueOf[FieldName])(using/*erased*/s: SelectByName[FieldName, Rec]): s.OutdefasSubRecord:Rec
}
objectSubRow {
importscala.compiletime.*typeOf[Rec<:Tuple] = [T] =>>SubRow[T, Rec]
/** Developer API, don't use directly */classSubRowImpl[T<:Product, Rec<:Tuple](valfieldIndices: collection.immutable.SeqMap[String, Int], valrecFields:IArray[String]) extendsSubRow[T, Rec] {
extension (r: T)
defapply[FieldName<:String&Singleton](usingValueOf[FieldName])(using/*erased*/s: SelectByName[FieldName, Rec]): s.Out=vali= fieldIndices(valueOf[FieldName])
r.productElement(i).asInstanceOf[s.Out]
defasSubRecord:Rec=valresContent=newArray[Object](recFields.size)
recFields.zipWithIndex `foreach` ((f, i) => resContent(i) = r.productElement(fieldIndices(f)).asInstanceOf[Object])
scala.runtime.Tuples.fromArray(resContent).asInstanceOf[Rec]
}
transparentinlinegivenisSubRow[T<:Product, Rec<:Tuple]
(usinggen: Generic[T]):SubRow[T, Rec] = {
inline erasedValue[MissingFields[Rec, FieldSet[gen.Out]]] match {
caset: NonEmptyTuple=>inlinevalmf= valueOf[TupleReduce[FieldNames[t.type], String, [a <:String, b <:String] =>> a +"\n"+ b]]
error("You have missing fields:\n"+ mf +"\nEnsure that these fields are present and that their types match")
// error("You have missing fields:\nEnsure that these fields are present and that their types match")case _ =>
}
vallabels= summonAll[TupleMap[gen.Out, @@[String&Singleton, Any], [x <:@@[String&Singleton, Any]] =>>ValueOf[FieldName[x]]]].toArray
valrecFields= summonAll[TupleMap[Rec, @@[String&Singleton, Any], [x <:@@[String&Singleton, Any]] =>>ValueOf[FieldName[x]]]].toIArray.map(_.asInstanceOf[ValueOf[String]].value)
(SubRowImpl[T, Rec](labels.map(_.asInstanceOf[ValueOf[String]].value).zipWithIndex.to(collection.immutable.TreeSeqMap), recFields):SubRow[T, Rec])
}
}
}
Output (click arrow to expand)
unhandled exception while running MegaPhase{crossVersionChecks, firstTransform, checkReentrant, elimPackagePrefixes, cookComments, checkLoopingImplicits, betaReduce, inlineVals, expandSAMs, elimRepeated, refchecks, dropForMap} on /tmp/genrec/genrec.scala
An unhandled exception was thrown in the compiler.
Please file a crash report here: https://github.com/scala/scala3/issues/new/choose
For non-enriched exceptions, compile with -Xno-enrich-error-messages.
while compiling: /tmp/genrec/genrec.scala
during phase: MegaPhase{crossVersionChecks, firstTransform, checkReentrant, elimPackagePrefixes, cookComments, checkLoopingImplicits, betaReduce, inlineVals, expandSAMs, elimRepeated, refchecks, dropForMap}
mode: Mode(ImplicitsEnabled)
library version: version 2.13.16
compiler version: version 3.7.0
settings: -classpath /home/user/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.7.0/scala3-library_3-3.7.0.jar:/home/user/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.16/scala-library-2.13.16.jar -d /tmp/genrec/.scala-build/genrec_71ae519d80/classes/main -sourceroot /tmp/genrec
Exception in thread "main" java.lang.AssertionError: assertion failed: TypeBounds(TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Nothing),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class )),object scala),trait Tuple))
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.Types$TypeBounds.(Types.scala:5554)
at dotty.tools.dotc.core.Types$RealTypeBounds.(Types.scala:5631)
at dotty.tools.dotc.core.Types$TypeBounds$.apply(Types.scala:5672)
at dotty.tools.dotc.core.Types$TypeBounds.derivedTypeBounds(Types.scala:5562)
at dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedTypeBounds(Types.scala:6503)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:6215)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:111)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:69)
at scala.collection.immutable.List.mapConserve(List.scala:473)
at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:6158)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:105)
at dotty.tools.dotc.core.TypeOps$.asSeenFrom(TypeOps.scala:55)
at dotty.tools.dotc.core.Types$Type.asSeenFrom(Types.scala:1113)
at dotty.tools.dotc.core.Denotations$SingleDenotation.derived$1(Denotations.scala:1107)
at dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1134)
at dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1087)
at dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:137)
at dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2194)
at dotty.tools.dotc.core.Types$Type.go$1(Types.scala:778)
at dotty.tools.dotc.core.Types$Type.findMember(Types.scala:959)
at dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:751)
at dotty.tools.dotc.core.Types$Type.nonPrivateMember(Types.scala:741)
at dotty.tools.dotc.typer.RefChecks$.hidden$1(RefChecks.scala:1190)
at dotty.tools.dotc.typer.RefChecks$.checkExtensionMethods(RefChecks.scala:1202)
at dotty.tools.dotc.typer.RefChecks.transformDefDef(RefChecks.scala:1356)
at dotty.tools.dotc.typer.RefChecks.transformDefDef(RefChecks.scala:1351)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1041)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:268)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:376)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:272)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:376)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:272)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:396)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:399)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:481)
at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:493)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:383)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:376)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:367)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1324)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:360)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$2(Run.scala:407)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$adapted$1(Run.scala:407)
at scala.Function0.apply$mcV$sp(Function0.scala:42)
at dotty.tools.dotc.Run.showProgress(Run.scala:469)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:407)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:419)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
at dotty.tools.dotc.Run.compileUnits(Run.scala:419)
at dotty.tools.dotc.Run.compileSources(Run.scala:306)
at dotty.tools.dotc.Run.compile(Run.scala:291)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:37)
at dotty.tools.dotc.Driver.process(Driver.scala:201)
at dotty.tools.dotc.Driver.process(Driver.scala:169)
at dotty.tools.dotc.Driver.process(Driver.scala:181)
at dotty.tools.dotc.Driver.main(Driver.scala:211)
at dotty.tools.dotc.Main.main(Main.scala)
Compilation failed
The text was updated successfully, but these errors were encountered:
-- [E194] Potential Issue Warning: /tmp/genrec/genrec.scala:164:27 -------------
164 | extension (r: Rec) def apply[F <: Field]: Out
| ^
|Extension method apply will never be selected from type Rec
|because Rec already has a member with the same name and compatible parameter types.
|
| longer explanation available when compiling with `-explain`
1 warning found
turns out addressing that warning by renaming that extension method makes this compile under 3.7.0 too. Still would be nice for the compiler not to crash.
Compiler version
3.7.0
Minimized code
I tried to minimize this by commenting parts out, but no luck (also most definitions depend on each other).
Output (click arrow to expand)
An unhandled exception was thrown in the compiler.
Please file a crash report here:
https://github.com/scala/scala3/issues/new/choose
For non-enriched exceptions, compile with -Xno-enrich-error-messages.
Exception in thread "main" java.lang.AssertionError: assertion failed: TypeBounds(TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Nothing),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class )),object scala),trait Tuple))
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.Types$TypeBounds.(Types.scala:5554)
at dotty.tools.dotc.core.Types$RealTypeBounds.(Types.scala:5631)
at dotty.tools.dotc.core.Types$TypeBounds$.apply(Types.scala:5672)
at dotty.tools.dotc.core.Types$TypeBounds.derivedTypeBounds(Types.scala:5562)
at dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedTypeBounds(Types.scala:6503)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:6215)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:111)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:69)
at scala.collection.immutable.List.mapConserve(List.scala:473)
at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:6158)
at dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:105)
at dotty.tools.dotc.core.TypeOps$.asSeenFrom(TypeOps.scala:55)
at dotty.tools.dotc.core.Types$Type.asSeenFrom(Types.scala:1113)
at dotty.tools.dotc.core.Denotations$SingleDenotation.derived$1(Denotations.scala:1107)
at dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1134)
at dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1087)
at dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:137)
at dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2194)
at dotty.tools.dotc.core.Types$Type.go$1(Types.scala:778)
at dotty.tools.dotc.core.Types$Type.findMember(Types.scala:959)
at dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:751)
at dotty.tools.dotc.core.Types$Type.nonPrivateMember(Types.scala:741)
at dotty.tools.dotc.typer.RefChecks$.hidden$1(RefChecks.scala:1190)
at dotty.tools.dotc.typer.RefChecks$.checkExtensionMethods(RefChecks.scala:1202)
at dotty.tools.dotc.typer.RefChecks.transformDefDef(RefChecks.scala:1356)
at dotty.tools.dotc.typer.RefChecks.transformDefDef(RefChecks.scala:1351)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1041)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.goDefDef(MegaPhase.scala:1042)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:268)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:376)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:272)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:376)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:272)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:465)
at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:396)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:399)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:481)
at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:493)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:383)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:376)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:367)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1324)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:360)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$2(Run.scala:407)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$adapted$1(Run.scala:407)
at scala.Function0.apply$mcV$sp(Function0.scala:42)
at dotty.tools.dotc.Run.showProgress(Run.scala:469)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:407)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:419)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
at dotty.tools.dotc.Run.compileUnits(Run.scala:419)
at dotty.tools.dotc.Run.compileSources(Run.scala:306)
at dotty.tools.dotc.Run.compile(Run.scala:291)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:37)
at dotty.tools.dotc.Driver.process(Driver.scala:201)
at dotty.tools.dotc.Driver.process(Driver.scala:169)
at dotty.tools.dotc.Driver.process(Driver.scala:181)
at dotty.tools.dotc.Driver.main(Driver.scala:211)
at dotty.tools.dotc.Main.main(Main.scala)
Compilation failed
The text was updated successfully, but these errors were encountered: