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
[EDIT] This is a much simpler reproduction I came across after posting the issue.
It seems the problem comes from accessing a generic type (with a Type[T]) from a recursive inline function. Without the tuples the error does not occur.
Stack trace
exception while typing {
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T] =
evidence$1
closure($anonfun$1)
}
} of classclass dotty.tools.dotc.ast.Trees$Inlined#5221
exception while typing scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T]
=
evidence$1
closure($anonfun$1)
}
}
) of classclass dotty.tools.dotc.ast.Trees$Apply#5329
exception while typing scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T]
=
evidence$1
closure($anonfun$1)
}
}
)
) of classclass dotty.tools.dotc.ast.Trees$Apply#5330
exception while typing scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T]
=
evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext) of classclass dotty.tools.dotc.ast.Trees$Apply#5331
exception while typing givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]] =
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext) of classclass dotty.tools.dotc.ast.Trees$ValDef#5332
exception while typing {
givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]] =
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
} of classclass dotty.tools.dotc.ast.Trees$Block#5334
exception while typing {
givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]] =
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple of classclass dotty.tools.dotc.ast.Trees$Typed#5335
exception while typing {
typeH= scala.collection.immutable.List[T]
{
givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]] =
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple
} of classclass dotty.tools.dotc.ast.Trees$Block#5336
exception while typing {
{
typeH= scala.collection.immutable.List[T]
{
givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]] =
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple
}
} of classclass dotty.tools.dotc.ast.Trees$Inlined#5337
exception while typing deftest[T](implicitevidence$1: quoted.Type[T]):
quoted.Type[scala.collection.immutable.List[T]] *:Tuple=
{
{
typeH= scala.collection.immutable.List[T]
{
givenvalgiven_Type_H: quoted.Type[scala.collection.immutable.List[T]]
=
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple
}
} of classclass dotty.tools.dotc.ast.Trees$DefDef#5338
exception while typing @scala.annotation.internal.SourceFile("Test.scala") final module classTest$package$
() extendsObject(), Serializable {
privatedefwriteReplace():AnyRef=new scala.runtime.ModuleSerializationProxy(classOf[test.Test$package.type])
privateinlinedefsummonT[Tp<:Tuple]:Tuple=???deftest[T](implicitevidence$1: quoted.Type[T]):
quoted.Type[scala.collection.immutable.List[T]] *:Tuple=
{
{
typeH= scala.collection.immutable.List[T]
{
givenvalgiven_Type_H:
quoted.Type[scala.collection.immutable.List[T]]
=
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple
}
}
} of classclass dotty.tools.dotc.ast.Trees$TypeDef#5340
exception while typing packagetest {
finallazy module valTest$package: test.Test$package$ =new test.Test$package$()
@scala.annotation.internal.SourceFile("Test.scala") final module classTest$package$
() extendsObject(), Serializable {
privatedefwriteReplace():AnyRef=new scala.runtime.ModuleSerializationProxy(classOf[test.Test$package.type]
)
privateinlinedefsummonT[Tp<:Tuple]:Tuple=???deftest[T](implicitevidence$1: quoted.Type[T]):
quoted.Type[scala.collection.immutable.List[T]] *:Tuple=
{
{
typeH= scala.collection.immutable.List[T]
{
givenvalgiven_Type_H:
quoted.Type[scala.collection.immutable.List[T]]
=
scala.runtime.quoted.Unpickler.unpickleType$direct[
scala.collection.immutable.List[evidence$1.$splice]
](
scala.collection.immutable.Nil.::[String](
"XKGrH5GAALX/hecSuQAAAT2pkhwTAAG+AYRBU1RzAYRMaXN0AYVzY2FsYQGKY29sbGVjdGlvbgKCgoMBiWltbXV0YWJsZQKChIUBgSQBjGV2aWRlbmNlJDEkXwqDh4GIAYxxdW90ZVR5cGVUYWcBhlF1b3RlZBeBiwGIaW50ZXJuYWwCgoKNAYY8aW5pdD4Cgo6LF4GQAoKRij+Cj5IBiVBvc2l0aW9ucwGrL2hvbWUvZmlubi9wcm9ncmFtbWluZy9kb3R0eS9iaW4vVGVzdC5zY2FsYYCjjKGhhnWBNoY1ioOXiaSD/4GAF62OdYpQdYw2joiFcJNWM5WUjIYB7QHthJUA0Kh/mA=="
)
,
scala.collection.immutable.Nil.::[
scala.collection.immutable.Seq[Any] => scala.quoted.Type[?]
](
{
{
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]):
quoted.Type[T]
= evidence$1
closure($anonfun$1)
}
}
)
)(scala.quoted.QuoteContext.macroContext)
valx$1: quoted.Type[H] =
{
{
given_Type_H
}:scala.quoted.Type(given_Type_H)
}
{
valTuple_this:Unit=
{
()
}
runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
{
x$1
}
,
{
Tuple_this
}
):quoted.Type[H] *:Tuple
}
}:quoted.Type[scala.collection.immutable.List[T]] *:Tuple
}
}
}
} of classclass dotty.tools.dotc.ast.Trees$PackageDef#5341
exception occurred while compiling Test.scala
java.lang.AssertionError: assertion failed: position not set for {
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T] =
evidence$1
closure($anonfun$1)
} #5220 of classdotty.tools.dotc.ast.Trees$Block in Test.scala while compiling Test.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: position not set for {
def$anonfun$1(x$0: scala.collection.immutable.Seq[Any]): quoted.Type[T] =
evidence$1
closure($anonfun$1)
} #5220 of classdotty.tools.dotc.ast.Trees$Block in Test.scala
at dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
at dotty.tools.dotc.typer.Typer$.assertPositioned(Typer.scala:58)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2149)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1291)
at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:595)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2082)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$5(Erasure.scala:564)
at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:110)
at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:564)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2061)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$5(Erasure.scala:564)
at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:110)
at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:111)
at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:564)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2061)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:548)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2061)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:1535)
at dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:603)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2045)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2116)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2184)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2228)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:747)
at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:758)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:762)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2069)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:393)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2066)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:763)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2069)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1291)
at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:595)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2082)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1600)
at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:635)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2048)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2116)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2184)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2228)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:747)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:1727)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2051)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2116)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2184)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2228)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:747)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:1852)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2092)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:100)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:315)
at scala.collection.immutable.List.map(List.scala:219)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:316)
at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:159)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.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:169)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:177)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
at dotty.tools.dotc.Run.compileUnits(Run.scala:184)
at dotty.tools.dotc.Run.compileSources(Run.scala:121)
at dotty.tools.dotc.Run.compile(Run.scala:104)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
at dotty.tools.dotc.Driver.process(Driver.scala:178)
at dotty.tools.dotc.Driver.process(Driver.scala:147)
at dotty.tools.dotc.Driver.process(Driver.scala:159)
at dotty.tools.dotc.Driver.main(Driver.scala:186)
at dotty.tools.dotc.Main.main(Main.scala)
The text was updated successfully, but these errors were encountered:
fhackett
changed the title
Interaction between function tupling and inline expansion crashes dotty
Summoning a Type[T] from a recursive inline function crashes Dotty
Oct 3, 2019
Uh oh!
There was an error while loading. Please reload this page.
minimized code
[EDIT] This is a much simpler reproduction I came across after posting the issue.
It seems the problem comes from accessing a generic type (with a Type[T]) from a recursive inline function. Without the tuples the error does not occur.
Stack trace
The text was updated successfully, but these errors were encountered: