Skip to content

StackOverflowException/UnsupportedOperationException crash #9299

Closed
@sir-wabbit

Description

@sir-wabbit

Minimized code

type F <: F = 1 match {
  case _ => foo.foo
}
def foo(a: Int): Unit = ???

Output (click arrow to expand)

-- Error: test.scala:1:10 ------------------------------------------------------
1 |type F <: F = 1 match {
  |          ^
  |Recursion limit exceeded.
  |Maybe there is an illegal cyclic reference?
  |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option.
  |A recurring operation is (inner to outer):
  |
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  ...
  |
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
  |  type parameters of  <: F
  |  type parameters of F
java.lang.StackOverflowError while compiling test.scala
Exception in thread "main" java.lang.StackOverflowError
	at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1981)
	at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1974)
	at dotty.tools.dotc.core.Types$TypeRef.underlying(Types.scala:2461)
	at dotty.tools.dotc.core.Types$Type.baseClasses(Types.scala:496)
	at dotty.tools.dotc.core.Types$Type.baseClasses(Types.scala:496)
	at dotty.tools.dotc.core.Types$Type.baseClasses(Types.scala:496)
	at dotty.tools.dotc.core.Types$Type.baseClasses(Types.scala:496)
	at dotty.tools.dotc.core.Types$Type.baseClasses(Types.scala:496)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions