Skip to content

NPE when compiling HK type bounds from TASTY #3817

Closed
@nicolasstucki

Description

@nicolasstucki

While compiling tests/pos/i974.scala (source bellow) from TASTY

class Foo[A]
class Bar[CC[X] <: Foo[CC[X]]]

the unpickling fails with

java.lang.NullPointerException
	at dotty.tools.dotc.core.Hashable.finishHash(Hashable.scala:65)
	at dotty.tools.dotc.core.Hashable.finishHash$(Hashable.scala:64)
	at dotty.tools.dotc.core.Types$Type.finishHash(Types.scala:87)
	at dotty.tools.dotc.core.Hashable.doHash(Hashable.scala:89)
	at dotty.tools.dotc.core.Hashable.doHash$(Hashable.scala:88)
	at dotty.tools.dotc.core.Types$Type.doHash(Types.scala:87)
	at dotty.tools.dotc.core.Types$HKLambda.computeHash(Types.scala:2639)
	at dotty.tools.dotc.core.Types$CachedProxyType.hash(Types.scala:1460)
	at dotty.tools.dotc.core.Hashable.finishHash(Hashable.scala:39)
	at dotty.tools.dotc.core.Hashable.finishHash$(Hashable.scala:38)
	at dotty.tools.dotc.core.Types$Type.finishHash(Types.scala:87)
	at dotty.tools.dotc.core.Hashable.finishHash(Hashable.scala:47)
	at dotty.tools.dotc.core.Hashable.finishHash$(Hashable.scala:44)
	at dotty.tools.dotc.core.Types$Type.finishHash(Types.scala:87)
	at dotty.tools.dotc.core.Hashable.doHash(Hashable.scala:80)
	at dotty.tools.dotc.core.Hashable.doHash$(Hashable.scala:79)
	at dotty.tools.dotc.core.Types$Type.doHash(Types.scala:87)
	at dotty.tools.dotc.core.Types$TypeBounds.computeHash(Types.scala:3506)
	at dotty.tools.dotc.core.Types$CachedProxyType.hash(Types.scala:1460)
	at dotty.tools.dotc.core.Uniques$.unique(Uniques.scala:28)
	at dotty.tools.dotc.core.Types$TypeBounds$.apply(Types.scala:3546)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthType$1(TreeUnpickler.scala:261)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readType(TreeUnpickler.scala:361)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTpt(TreeUnpickler.scala:1057)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readNewDef(TreeUnpickler.scala:709)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readIndexedDef(TreeUnpickler.scala:635)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$Completer.complete(TreeUnpickler.scala:91)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:246)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeInfo$1(SymDenotations.scala:209)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.info(SymDenotations.scala:211)
	at dotty.tools.dotc.core.TypeApplications$.$anonfun$typeParams$extension$1(TypeApplications.scala:175)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
	at dotty.tools.dotc.core.TypeApplications$.typeParams$extension(TypeApplications.scala:171)
	at dotty.tools.dotc.core.TypeApplications$.$anonfun$appliedTo$extension0$1(TypeApplications.scala:336)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
	at dotty.tools.dotc.core.TypeApplications$.appliedTo$extension0(TypeApplications.scala:335)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthType$1(TreeUnpickler.scala:259)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readType(TreeUnpickler.scala:361)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.$anonfun$readType$6(TreeUnpickler.scala:259)
	at dotty.tools.dotc.core.tasty.TastyReader.until(TastyReader.scala:125)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthType$1(TreeUnpickler.scala:259)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readType(TreeUnpickler.scala:361)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.$anonfun$readType$5(TreeUnpickler.scala:224)
	at dotty.tools.dotc.core.Types$HKTypeLambda.<init>(Types.scala:2962)
	at dotty.tools.dotc.core.Types$HKTypeLambda$.apply(Types.scala:3013)
	at dotty.tools.dotc.core.Types$HKTypeLambda$.apply(Types.scala:3009)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.$anonfun$readType$2(TreeUnpickler.scala:222)
	at scala.collection.MapLike.getOrElse(MapLike.scala:128)
	at scala.collection.MapLike.getOrElse$(MapLike.scala:126)
	at scala.collection.AbstractMap.getOrElse(Map.scala:59)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readMethodic$1(TreeUnpickler.scala:217)
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions