bug
bug copied to clipboard
StackOverflow error in compiler involving type alias, existential, higher kinds
class TypeTest {
type Foldable[X[_]] = X[_]
def forComp[Coll[X]<:Foldable[Coll]](c: Coll[_]) = c.map //
}
Exception in thread "main" java.lang.StackOverflowError
at scala.reflect.internal.Types$AbstractTypeRef$class.thisInfo(Types.scala:2099)
at scala.reflect.internal.Types$AbstractArgsTypeRef.thisInfo(Types.scala:2327)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2199)
at scala.reflect.internal.Types$SimpleTypeProxy$class.baseClasses(Types.scala:165)
at scala.reflect.internal.Types$ExistentialType.baseClasses(Types.scala:2550)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2199)
at scala.reflect.internal.Types$SubType.baseClasses(Types.scala:1070)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2199)
at scala.reflect.internal.Types$SimpleTypeProxy$class.baseClasses(Types.scala:165)
at scala.reflect.internal.Types$ExistentialType.baseClasses(Types.scala:2550)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2199)
at scala.reflect.internal.Types$SubType.baseClasses(Types.scala:1070)
at scala.reflect.internal.Types$TypeRef.baseClasses(Types.scala:2199)
Imported From: https://issues.scala-lang.org/browse/SI-8488?orig=1 Reporter: Raul Bache (arneball) Affected Versions: 2.10.3, 2.11.0-RC1 See #8252
Raul Bache (arneball) said: Don't even ask me what i was trying to achieve :D
@retronym said: Variations:
scala> def cyclicAliasing[Coll[X]<:Coll[X]](c: Coll[Any]) = ()
<console>:7: error: cyclic aliasing or subtyping involving type Coll
def cyclicAliasing[Coll[X]<:Coll[X]](c: Coll[Any]) = ()
^
<console>:7: error: Coll does not take type parameters
def cyclicAliasing[Coll[X]<:Coll[X]](c: Coll[Any]) = ()
^
scala> def compilerDeath[Coll[X]<:Coll[_]](c: Coll[Any]) = ()
SOE in ErasureMap
The compiler probably should reject compilerDeath on the same grounds as cyclicAliasing, but I'm a bit sketchy about the rules here.
@retronym said: See also #8252 which is in the same neighbourhood as this bug.
Scala 2.13.16 also crashes, and so does Scala 3.6.3