Skip to content

Scalac 3.3.1-xxx regression causes typer crash with stack overflow #18171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
soronpo opened this issue Jul 8, 2023 · 9 comments · Fixed by #18214 or #19867
Closed

Scalac 3.3.1-xxx regression causes typer crash with stack overflow #18171

soronpo opened this issue Jul 8, 2023 · 9 comments · Fixed by #18214 or #19867
Assignees
Labels
area:match-types area:typer itype:bug itype:crash regression This worked in a previous version but doesn't anymore
Milestone

Comments

@soronpo
Copy link
Contributor

soronpo commented Jul 8, 2023

Compiler version

v3.3.1-RC1/2/3

Minimized code

type BAZ[T] = T match
  case Any => DFVal[BAZREC[T]]
type BAZREC[T] = T match
  case NonEmptyTuple => Tuple.Map[T, BAZ]

trait DFVal[T]
def foo(relIdx: BAZ[Any]): Unit =
  relIdx.bar

Output (click arrow to expand)

[error] java.lang.StackOverflowError
[error] dotty.tools.dotc.core.TypeApplications$.tryReduce$1(TypeApplications.scala:363)
[error] dotty.tools.dotc.core.TypeApplications$.appliedTo$extension(TypeApplications.scala:380)
[error] dotty.tools.dotc.core.TypeApplications$.applyIfParameterized$extension(TypeApplications.scala:406)
[error] dotty.tools.dotc.core.Types$MatchType$InDisguise$.unapply(Types.scala:4963)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:640)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6201)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:636)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6201)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:636)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy24$1(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$3(Types.scala:6187)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6191)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:645)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeTraverser.apply(Types.scala:6276)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6269)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:6230)
[error] dotty.tools.dotc.core.Types$TypeTraverser.traverseChildren(Types.scala:6277)
[error] dotty.tools.dotc.typer.ImplicitRunInfo$collectParts$2$.traverse(Implicits.scala:638)
.
.
.
.
.
@soronpo soronpo added itype:bug area:typer itype:crash stat:needs minimization Needs a self contained minimization regression This worked in a previous version but doesn't anymore labels Jul 8, 2023
@soronpo soronpo changed the title Scalac 3.3.1-xxx regression causes typer crash Scalac 3.3.1-xxx regression causes typer crash with stack overflow Jul 8, 2023
@soronpo
Copy link
Contributor Author

soronpo commented Jul 8, 2023

First bad nightly 3.3.1-RC1-bin-20230513-4cb6ee6-NIGHTLY

@soronpo
Copy link
Contributor Author

soronpo commented Jul 8, 2023

My money is on #17457

@dwijnand
Copy link
Member

dwijnand commented Jul 9, 2023

If you can minimise it, I can commit to trying to fix it.

@soronpo
Copy link
Contributor Author

soronpo commented Jul 9, 2023

Thanks. Working on that. Already put 5 hours into it. Getting there...

@soronpo
Copy link
Contributor Author

soronpo commented Jul 12, 2023

@dwijnand I updated the description with the minimized example.
Note that the code crashes, but when fixed this should not compile since .bar is missing.

@dwijnand dwijnand self-assigned this Jul 14, 2023
@Kordyjan Kordyjan added area:match-types and removed stat:needs minimization Needs a self contained minimization labels Jul 14, 2023
@dwijnand dwijnand linked a pull request Jul 15, 2023 that will close this issue
@Kordyjan Kordyjan added this to the 3.4.0 milestone Aug 1, 2023
@Kordyjan
Copy link
Contributor

After playing for some time with the DFiant project and different compiler builds, I'm confident that the regression still needs to be fixed.

The project compiles correctly with 3.3.0, but even on 3.3.0 with two commits rebased (5bafff7 & b65f689) there is already a compiler error.

For reference the backport of 18214 fails in the exactly same way.

cc @dwijnand

@Kordyjan Kordyjan reopened this Aug 16, 2023
@dwijnand dwijnand modified the milestones: 3.4.0, 3.4.1 Dec 11, 2023
@soronpo
Copy link
Contributor Author

soronpo commented Dec 18, 2023

@dwijnand what is the reason a 3.3.1 (LTS) regression is marked for 3.4.x?

@soronpo
Copy link
Contributor Author

soronpo commented Dec 18, 2023

Ok, NM, I see the original PR was reverted in 3.3.1-RC6 and will be revisited in 3.4.

@soronpo
Copy link
Contributor Author

soronpo commented Mar 7, 2024

Thank you @dwijnand

@Kordyjan Kordyjan modified the milestones: 3.4.2, 3.5.0 May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:match-types area:typer itype:bug itype:crash regression This worked in a previous version but doesn't anymore
Projects
None yet
3 participants