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
finalcaseclassTwoTypes[F, A](value: A)
classMinimal {
defx[C[_]]:C[Int] =???
x[TwoTypes].value
}
Output (click arrow to expand)
/tmp/scala3-3.0.2$ bin/scalac Minimal.scala
exception occurred while typechecking Minimal.scala
exception occurred while compiling Minimal.scala
java.lang.NullPointerExceptionwhile compiling Minimal.scala
Exception in thread "main" java.lang.NullPointerException
at dotty.tools.dotc.core.Types$HKTypeLambda.iso(Types.scala:3883)
at dotty.tools.dotc.core.Types$Type.equals(Types.scala:1874)
at dotty.tools.dotc.core.Types$HKLambda.equals(Types.scala:3465)
at dotty.tools.dotc.core.Substituters$.substParams(Substituters.scala:151)
at dotty.tools.dotc.core.Substituters$.mapArgs$2(Substituters.scala:158)
at dotty.tools.dotc.core.Substituters$.substParams(Substituters.scala:158)
at dotty.tools.dotc.core.Types$Type.substParams(Types.scala:1765)
at dotty.tools.dotc.core.Types$LambdaType.instantiate(Types.scala:3428)
at dotty.tools.dotc.core.Types$LambdaType.instantiate$(Types.scala:3389)
at dotty.tools.dotc.core.Types$HKLambda.instantiate(Types.scala:3462)
at dotty.tools.dotc.core.TypeApplications$.tryReduce$1(TypeApplications.scala:335)
at dotty.tools.dotc.core.TypeApplications$.appliedTo$extension(TypeApplications.scala:354)
at dotty.tools.dotc.core.Types$AppliedType.derivedAppliedType(Types.scala:4288)
at dotty.tools.dotc.core.Substituters$.subst(Substituters.scala:20)
at dotty.tools.dotc.core.Substituters$.subst(Substituters.scala:16)
at dotty.tools.dotc.core.Types$Type.subst(Types.scala:1745)
at dotty.tools.dotc.core.Types$HKTypeLambda.newLikeThis$$anonfun$2(Types.scala:3895)
at dotty.tools.dotc.core.Types$HKTypeLambda.<init>(Types.scala:3851)
at dotty.tools.dotc.core.Types$HKTypeLambda$.apply(Types.scala:3956)
at dotty.tools.dotc.core.Types$HKTypeLambda.newLikeThis(Types.scala:3895)
at dotty.tools.dotc.core.Types$HKTypeLambda.newLikeThis(Types.scala:3890)
at dotty.tools.dotc.core.Types$HKTypeLambda.newLikeThis(Types.scala:3889)
at dotty.tools.dotc.core.Types$LambdaType.derivedLambdaType(Types.scala:3446)
at dotty.tools.dotc.core.Types$LambdaType.derivedLambdaType$(Types.scala:3389)
at dotty.tools.dotc.core.Types$HKLambda.derivedLambdaType(Types.scala:3462)
at dotty.tools.dotc.core.Types$TypeLambda.derivedLambdaAbstraction(Types.scala:3826)
at dotty.tools.dotc.core.Types$TypeLambda.derivedLambdaAbstraction$(Types.scala:3803)
at dotty.tools.dotc.core.Types$HKTypeLambda.derivedLambdaAbstraction(Types.scala:3844)
at dotty.tools.dotc.core.Types$Type.goApplied$2$$anonfun$1(Types.scala:803)
at dotty.tools.dotc.core.Denotations$SingleDenotation.mapInfo(Denotations.scala:626)
at dotty.tools.dotc.core.Denotations$SingleDenotation.mapInfo(Denotations.scala:625)
at dotty.tools.dotc.core.Types$Type.goApplied$1(Types.scala:803)
at dotty.tools.dotc.core.Types$Type.go$1(Types.scala:695)
at dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870)
at dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666)
at dotty.tools.dotc.core.Types$Type.member(Types.scala:650)
at dotty.tools.dotc.typer.ProtoTypes$SelectionProto.isMatchedBy(ProtoTypes.scala:187)
at dotty.tools.dotc.core.TypeComparer.isMatchedByProto(TypeComparer.scala:1874)
at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:315)
at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1296)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205)
at dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:128)
at dotty.tools.dotc.core.TypeComparer.testSubType(TypeComparer.scala:154)
at dotty.tools.dotc.core.TypeComparer$.testSubType(TypeComparer.scala:2715)
at dotty.tools.dotc.typer.Typer.adaptNoArgsOther$4(Typer.scala:3523)
at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3619)
at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3810)
at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3162)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2821)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2825)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.typeSelectOnTerm$1(Typer.scala:611)
at dotty.tools.dotc.typer.Typer.typedSelect(Typer.scala:661)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2663)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2755)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2821)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2825)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2874)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2897)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2352)
at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2681)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2685)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2755)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2821)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2825)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2847)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2897)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2475)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2726)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2756)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2821)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2825)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2941)
at dotty.tools.dotc.typer.FrontEnd.liftedTree1$1(FrontEnd.scala:79)
at dotty.tools.dotc.typer.FrontEnd.typeCheck$$anonfun$1(FrontEnd.scala:84)
at dotty.tools.dotc.typer.FrontEnd.monitor(FrontEnd.scala:43)
at dotty.tools.dotc.typer.FrontEnd.typeCheck(FrontEnd.scala:85)
at dotty.tools.dotc.typer.FrontEnd.runOn$$anonfun$3(FrontEnd.scala:120)
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:333)
at dotty.tools.dotc.typer.FrontEnd.runOn(FrontEnd.scala:120)
at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
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:1323)
at dotty.tools.dotc.Run.runPhases$5(Run.scala:216)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:224)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
at dotty.tools.dotc.Run.compileUnits(Run.scala:231)
at dotty.tools.dotc.Run.compileSources(Run.scala:166)
at dotty.tools.dotc.Run.compile(Run.scala:150)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
at dotty.tools.dotc.Driver.process(Driver.scala:199)
at dotty.tools.dotc.Driver.process(Driver.scala:167)
at dotty.tools.dotc.Driver.process(Driver.scala:179)
at dotty.tools.dotc.Driver.main(Driver.scala:209)
at dotty.tools.dotc.Main.main(Main.scala)
The text was updated successfully, but these errors were encountered:
The uninstantiated access in the test case happens because the closure
passed to the HKTypeLambda constructor to construct the result type by
`HKTypeLambda.newLikeThis` calls `subst` which eventually calls
`HKTypeLambda#equals`, I don't see a way to prevent that at the source,
so make equality checking robust to uninstantatied fields.
Fixesscala#13513.
The uninstantiated access in the test case happens because the closure
passed to the HKTypeLambda constructor to construct the result type by
`HKTypeLambda.newLikeThis` calls `subst` which eventually calls
`HKTypeLambda#equals`, I don't see a way to prevent that at the source,
so make equality checking robust to uninstantatied fields.
Fixesscala#13513.
Compiler version
3.0.2
Minimized code
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: