Skip to content

Summoning a Type[T] from a recursive inline function crashes Dotty #7358

Closed
@fhackett

Description

@fhackett

minimized code

package test

import scala.quoted._
import scala.compiletime._

inline def summonT[Tp <: Tuple] <: Tuple = inline erasedValue[Tp] match {
  case _ : Unit => ()
  case _ : (hd *: tl) => {
    type H = hd
    summonFrom {
      case given _ : Type[H] => summon[Type[H]] *: summonT[tl]
    }
  }
}

def test[T : Type] = summonT[Tuple1[List[T]]]

[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 class class 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 class class 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 class class 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 class class dotty.tools.dotc.ast.Trees$Apply # 5331
exception while typing given val given_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 class class dotty.tools.dotc.ast.Trees$ValDef # 5332
exception while typing {
  given val given_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)
  val x$1: quoted.Type[H] = 
    {
      {
        given_Type_H
      }:scala.quoted.Type(given_Type_H)
    }
  {
    val Tuple_this: Unit = 
      {
        ()
      }
    runtime.DynamicTuple.dynamicCons[quoted.Type[H], Tuple](
      {
        x$1
      }
    , 
      {
        Tuple_this
      }
    ):quoted.Type[H] *: Tuple
  }
} of class class dotty.tools.dotc.ast.Trees$Block # 5334
exception while typing {
  given val given_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)
  val x$1: quoted.Type[H] = 
    {
      {
        given_Type_H
      }:scala.quoted.Type(given_Type_H)
    }
  {
    val Tuple_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 class class dotty.tools.dotc.ast.Trees$Typed # 5335
exception while typing {
  type H = scala.collection.immutable.List[T]
  {
    given val given_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)
    val x$1: quoted.Type[H] = 
      {
        {
          given_Type_H
        }:scala.quoted.Type(given_Type_H)
      }
    {
      val Tuple_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 class class dotty.tools.dotc.ast.Trees$Block # 5336
exception while typing {
  {
    type H = scala.collection.immutable.List[T]
    {
      given val given_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)
      val x$1: quoted.Type[H] = 
        {
          {
            given_Type_H
          }:scala.quoted.Type(given_Type_H)
        }
      {
        val Tuple_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 class class dotty.tools.dotc.ast.Trees$Inlined # 5337
exception while typing def test[T](implicit evidence$1: quoted.Type[T]): 
  quoted.Type[scala.collection.immutable.List[T]] *: Tuple
 = 
  {
    {
      type H = scala.collection.immutable.List[T]
      {
        given val given_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)
        val x$1: quoted.Type[H] = 
          {
            {
              given_Type_H
            }:scala.quoted.Type(given_Type_H)
          }
        {
          val Tuple_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 class class dotty.tools.dotc.ast.Trees$DefDef # 5338
exception while typing @scala.annotation.internal.SourceFile("Test.scala") final module class 
  Test$package$
() extends Object(), Serializable {
  private def writeReplace(): AnyRef = 
    new scala.runtime.ModuleSerializationProxy(classOf[test.Test$package.type])
  private inline def summonT[Tp <: Tuple]: Tuple = ???
  def test[T](implicit evidence$1: quoted.Type[T]): 
    quoted.Type[scala.collection.immutable.List[T]] *: Tuple
   = 
    {
      {
        type H = scala.collection.immutable.List[T]
        {
          given val given_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)
          val x$1: quoted.Type[H] = 
            {
              {
                given_Type_H
              }:scala.quoted.Type(given_Type_H)
            }
          {
            val Tuple_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 class class dotty.tools.dotc.ast.Trees$TypeDef # 5340
exception while typing package test {
  final lazy module val Test$package: test.Test$package$ = 
    new test.Test$package$()
  @scala.annotation.internal.SourceFile("Test.scala") final module class 
    Test$package$
  () extends Object(), Serializable {
    private def writeReplace(): AnyRef = 
      new scala.runtime.ModuleSerializationProxy(classOf[test.Test$package.type]
        )
    private inline def summonT[Tp <: Tuple]: Tuple = ???
    def test[T](implicit evidence$1: quoted.Type[T]): 
      quoted.Type[scala.collection.immutable.List[T]] *: Tuple
     = 
      {
        {
          type H = scala.collection.immutable.List[T]
          {
            given val given_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)
            val x$1: quoted.Type[H] = 
              {
                {
                  given_Type_H
                }:scala.quoted.Type(given_Type_H)
              }
            {
              val Tuple_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 class class 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 class dotty.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 class dotty.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)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions