Skip to content
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

assertion failed: orphan parameter reference: TypeParamRef((param)2) #15822

Closed
armanbilge opened this issue Aug 5, 2022 · 3 comments
Closed
Assignees
Labels
area:pickling itype:bug itype:crash regression This worked in a previous version but doesn't anymore

Comments

@armanbilge
Copy link
Contributor

armanbilge commented Aug 5, 2022

Compiler version

3.2.1-RC1-bin-20220803-da2d44a-NIGHTLY

Minimized code

//> using scala "3.2.1-RC1-bin-20220803-da2d44a-NIGHTLY"

import scala.deriving.*
import scala.compiletime.*

@main def main =
  val n: IO[Int] = ???
  foo(
    "Count: ",
    n.map(_.toString),
  )

trait Functor[F[_]]:
  extension [A](fa: F[A])
    def map[B](f: A => B): F[B] = ???

trait IO[A]
object IO:
  given Functor[IO] = ???

trait Modifier[A]

def foo[M <: Tuple](modifiers: M)(
    using K0.ProductInstances[Modifier, M]): Unit = ???

object K0 {
  type Kind[C, O] = C {
    type Kind = K0.type
    type MirroredType = O
    type MirroredMonoType = O
    type MirroredElemTypes <: Tuple
  }
  
  type ProductGeneric[O] = Kind[Mirror.Product, O]

  type ProductInstances[F[_], T]

  inline given mkProductInstances[F[_], T](using gen: ProductGeneric[T]): ProductInstances[F, T] = ???
}

Output (click arrow to expand)

[info] compiling 1 Scala source to /workspace/sandbox/target/scala-3.2.1-RC1-bin-20220803-da2d44a-NIGHTLY/classes ...
error when pickling type (param)2
error when pickling type IO[(param)2]
error when pickling type (String, IO[(param)2])
error when pickling type  = (String, IO[(param)2])
error when pickling type scala.deriving.Mirror.Product{MirroredMonoType = (String, IO[(param)2])}
error when pickling type scala.deriving.Mirror.Product{
  MirroredMonoType = (String, IO[(param)2]); 
    MirroredType = (String, IO[(param)2])
}
error when pickling type scala.deriving.Mirror.Product{
  MirroredMonoType = (String, IO[(param)2]); 
    MirroredType = (String, IO[(param)2])
  ; MirroredLabel = ("Tuple2" : String)
}
error when pickling type scala.deriving.Mirror.Product{
  MirroredMonoType = (String, IO[(param)2]); 
    MirroredType = (String, IO[(param)2])
  ; MirroredLabel = ("Tuple2" : String); 
    MirroredElemTypes = (String, IO[(param)2])
}
error when pickling type scala.deriving.Mirror.Product{
  MirroredMonoType = (String, IO[(param)2]); 
    MirroredType = (String, IO[(param)2])
  ; MirroredLabel = ("Tuple2" : String); 
    MirroredElemTypes = (String, IO[(param)2])
  ; MirroredElemLabels = (("_1" : String), ("_2" : String))
}
error when pickling type deriving.Mirror.Product{
  Kind = K0.type; MirroredType = (String, IO[String]); 
    MirroredMonoType = (String, IO[String])
  ; MirroredElemTypes <: Tuple
} & 
  scala.deriving.Mirror.Product{
    MirroredMonoType = (String, IO[(param)2]); 
      MirroredType = (String, IO[(param)2])
    ; MirroredLabel = ("Tuple2" : String); 
      MirroredElemTypes = (String, IO[(param)2])
    ; MirroredElemLabels = (("_1" : String), ("_2" : String))
  }
error when pickling tree 
  deriving.Mirror.Product{
    Kind = K0.type; MirroredType = (String, IO[String]); 
      MirroredMonoType = (String, IO[String])
    ; MirroredElemTypes <: Tuple
  }
 & 
  scala.deriving.Mirror.Product{
    MirroredMonoType = (String, IO[(param)2]); 
      MirroredType = (String, IO[(param)2])
    ; MirroredLabel = ("Tuple2" : String); 
      MirroredElemTypes = (String, IO[(param)2])
    ; MirroredElemLabels = (("_1" : String), ("_2" : String))
  }

error when pickling tree new scala.runtime.TupleMirror(2).$asInstanceOf[
  
    deriving.Mirror.Product{
      Kind = K0.type; MirroredType = (String, IO[String]); 
        MirroredMonoType = (String, IO[String])
      ; MirroredElemTypes <: Tuple
    }
   & 
    scala.deriving.Mirror.Product{
      MirroredMonoType = (String, IO[(param)2]); 
        MirroredType = (String, IO[(param)2])
      ; MirroredLabel = ("Tuple2" : String); 
        MirroredElemTypes = (String, IO[(param)2])
      ; MirroredElemLabels = (("_1" : String), ("_2" : String))
    }
  
]
error when pickling tree K0.mkProductInstances[Modifier, (String, IO[String])](
  new scala.runtime.TupleMirror(2).$asInstanceOf[
    
      deriving.Mirror.Product{
        Kind = K0.type; MirroredType = (String, IO[String]); 
          MirroredMonoType = (String, IO[String])
        ; MirroredElemTypes <: Tuple
      }
     & 
      scala.deriving.Mirror.Product{
        MirroredMonoType = (String, IO[(param)2]); 
          MirroredType = (String, IO[(param)2])
        ; MirroredLabel = ("Tuple2" : String); 
          MirroredElemTypes = (String, IO[(param)2])
        ; MirroredElemLabels = (("_1" : String), ("_2" : String))
      }
    
  ]
)
error when pickling tree foo[(String, IO[String])](
  Tuple2.apply[String, IO[String]]("Count: ", 
    IO.given_Functor_IO.map[Int](n)[String](
      {
        def $anonfun(_$1: Int): String = _$1.toString()
        closure($anonfun)
      }
    )
  )
)(
  K0.mkProductInstances[Modifier, (String, IO[String])](
    new scala.runtime.TupleMirror(2).$asInstanceOf[
      
        deriving.Mirror.Product{
          Kind = K0.type; MirroredType = (String, IO[String]); 
            MirroredMonoType = (String, IO[String])
          ; MirroredElemTypes <: Tuple
        }
       & 
        scala.deriving.Mirror.Product{
          MirroredMonoType = (String, IO[(param)2]); 
            MirroredType = (String, IO[(param)2])
          ; MirroredLabel = ("Tuple2" : String); 
            MirroredElemTypes = (String, IO[(param)2])
          ; MirroredElemLabels = (("_1" : String), ("_2" : String))
        }
      
    ]
  )
)
error when pickling tree {
  val n: IO[Int] = ???
  foo[(String, IO[String])](
    Tuple2.apply[String, IO[String]]("Count: ", 
      IO.given_Functor_IO.map[Int](n)[String](
        {
          def $anonfun(_$1: Int): String = _$1.toString()
          closure($anonfun)
        }
      )
    )
  )(
    K0.mkProductInstances[Modifier, (String, IO[String])](
      new scala.runtime.TupleMirror(2).$asInstanceOf[
        
          deriving.Mirror.Product{
            Kind = K0.type; MirroredType = (String, IO[String]); 
              MirroredMonoType = (String, IO[String])
            ; MirroredElemTypes <: Tuple
          }
         & 
          scala.deriving.Mirror.Product{
            MirroredMonoType = (String, IO[(param)2]); 
              MirroredType = (String, IO[(param)2])
            ; MirroredLabel = ("Tuple2" : String); 
              MirroredElemTypes = (String, IO[(param)2])
            ; MirroredElemLabels = (("_1" : String), ("_2" : String))
          }
        
      ]
    )
  )
}
error when pickling tree @main def main: Unit = 
  {
    val n: IO[Int] = ???
    foo[(String, IO[String])](
      Tuple2.apply[String, IO[String]]("Count: ", 
        IO.given_Functor_IO.map[Int](n)[String](
          {
            def $anonfun(_$1: Int): String = _$1.toString()
            closure($anonfun)
          }
        )
      )
    )(
      K0.mkProductInstances[Modifier, (String, IO[String])](
        new scala.runtime.TupleMirror(2).$asInstanceOf[
          
            deriving.Mirror.Product{
              Kind = K0.type; MirroredType = (String, IO[String]); 
                MirroredMonoType = (String, IO[String])
              ; MirroredElemTypes <: Tuple
            }
           & 
            scala.deriving.Mirror.Product{
              MirroredMonoType = (String, IO[(param)2]); 
                MirroredType = (String, IO[(param)2])
              ; MirroredLabel = ("Tuple2" : String); 
                MirroredElemTypes = (String, IO[(param)2])
              ; MirroredElemLabels = (("_1" : String), ("_2" : String))
            }
          
        ]
      )
    )
  }
error when pickling tree () extends Object() { this: bug$package.type =>
  private def writeReplace(): AnyRef = 
    new scala.runtime.ModuleSerializationProxy(classOf[bug$package.type])
  @main def main: Unit = 
    {
      val n: IO[Int] = ???
      foo[(String, IO[String])](
        Tuple2.apply[String, IO[String]]("Count: ", 
          IO.given_Functor_IO.map[Int](n)[String](
            {
              def $anonfun(_$1: Int): String = _$1.toString()
              closure($anonfun)
            }
          )
        )
      )(
        K0.mkProductInstances[Modifier, (String, IO[String])](
          new scala.runtime.TupleMirror(2).$asInstanceOf[
            
              deriving.Mirror.Product{
                Kind = K0.type; MirroredType = (String, IO[String]); 
                  MirroredMonoType = (String, IO[String])
                ; MirroredElemTypes <: Tuple
              }
             & 
              scala.deriving.Mirror.Product{
                MirroredMonoType = (String, IO[(param)2]); 
                  MirroredType = (String, IO[(param)2])
                ; MirroredLabel = ("Tuple2" : String); 
                  MirroredElemTypes = (String, IO[(param)2])
                ; MirroredElemLabels = (("_1" : String), ("_2" : String))
              }
            
          ]
        )
      )
    }
  def foo[M >: Nothing <: Tuple](modifiers: M)(using 
    x$2: K0.ProductInstances[Modifier, M]
  ): Unit = ???
}
error when pickling tree @SourceFile("bug.scala") final module class bug$package() extends Object() { 
  this: bug$package.type =>
  private def writeReplace(): AnyRef = 
    new scala.runtime.ModuleSerializationProxy(classOf[bug$package.type])
  @main def main: Unit = 
    {
      val n: IO[Int] = ???
      foo[(String, IO[String])](
        Tuple2.apply[String, IO[String]]("Count: ", 
          IO.given_Functor_IO.map[Int](n)[String](
            {
              def $anonfun(_$1: Int): String = _$1.toString()
              closure($anonfun)
            }
          )
        )
      )(
        K0.mkProductInstances[Modifier, (String, IO[String])](
          new scala.runtime.TupleMirror(2).$asInstanceOf[
            
              deriving.Mirror.Product{
                Kind = K0.type; MirroredType = (String, IO[String]); 
                  MirroredMonoType = (String, IO[String])
                ; MirroredElemTypes <: Tuple
              }
             & 
              scala.deriving.Mirror.Product{
                MirroredMonoType = (String, IO[(param)2]); 
                  MirroredType = (String, IO[(param)2])
                ; MirroredLabel = ("Tuple2" : String); 
                  MirroredElemTypes = (String, IO[(param)2])
                ; MirroredElemLabels = (("_1" : String), ("_2" : String))
              }
            
          ]
        )
      )
    }
  def foo[M >: Nothing <: Tuple](modifiers: M)(using 
    x$2: K0.ProductInstances[Modifier, M]
  ): Unit = ???
}
error when pickling tree package <empty> {
  import scala.deriving.*
  import scala.compiletime.*
  final lazy module val bug$package: bug$package = new bug$package()
  @SourceFile("bug.scala") final module class bug$package() extends Object() { 
    this: bug$package.type =>
    private def writeReplace(): AnyRef = 
      new scala.runtime.ModuleSerializationProxy(classOf[bug$package.type])
    @main def main: Unit = 
      {
        val n: IO[Int] = ???
        foo[(String, IO[String])](
          Tuple2.apply[String, IO[String]]("Count: ", 
            IO.given_Functor_IO.map[Int](n)[String](
              {
                def $anonfun(_$1: Int): String = _$1.toString()
                closure($anonfun)
              }
            )
          )
        )(
          K0.mkProductInstances[Modifier, (String, IO[String])](
            new scala.runtime.TupleMirror(2).$asInstanceOf[
              
                deriving.Mirror.Product{
                  Kind = K0.type; MirroredType = (String, IO[String]); 
                    MirroredMonoType = (String, IO[String])
                  ; MirroredElemTypes <: Tuple
                }
               & 
                scala.deriving.Mirror.Product{
                  MirroredMonoType = (String, IO[(param)2]); 
                    MirroredType = (String, IO[(param)2])
                  ; MirroredLabel = ("Tuple2" : String); 
                    MirroredElemTypes = (String, IO[(param)2])
                  ; MirroredElemLabels = (("_1" : String), ("_2" : String))
                }
              
            ]
          )
        )
      }
    def foo[M >: Nothing <: Tuple](modifiers: M)(using 
      x$2: K0.ProductInstances[Modifier, M]
    ): Unit = ???
  }
}
[info] exception occurred while compiling /workspace/sandbox/bug.scala
java.lang.AssertionError: assertion failed: orphan parameter reference: TypeParamRef((param)2) while compiling /workspace/sandbox/bug.scala
[error] ## Exception when compiling 1 sources to /workspace/sandbox/target/scala-3.2.1-RC1-bin-20220803-da2d44a-NIGHTLY/classes
[error] java.lang.AssertionError: assertion failed: orphan parameter reference: TypeParamRef((param)2)
[error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:291)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$2$$anonfun$1(TreePickler.scala:181)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$2(TreePickler.scala:181)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$2(TreePickler.scala:181)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:181)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$2$$anonfun$1(TreePickler.scala:181)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$2(TreePickler.scala:181)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$2(TreePickler.scala:181)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:181)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$5(TreePickler.scala:256)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$5(TreePickler.scala:260)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:260)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$4(TreePickler.scala:248)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$4(TreePickler.scala:249)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:249)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$4(TreePickler.scala:247)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$4(TreePickler.scala:249)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:249)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$4(TreePickler.scala:247)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$4(TreePickler.scala:249)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:249)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$4(TreePickler.scala:247)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$4(TreePickler.scala:249)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:249)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$4(TreePickler.scala:247)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$4(TreePickler.scala:249)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:249)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$7(TreePickler.scala:266)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType$$anonfun$adapted$7(TreePickler.scala:266)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:266)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:160)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:609)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTpt(TreePickler.scala:318)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$4$$anonfun$1(TreePickler.scala:440)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$4(TreePickler.scala:440)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$4(TreePickler.scala:441)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:441)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3$$anonfun$1(TreePickler.scala:433)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3(TreePickler.scala:433)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$3(TreePickler.scala:434)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:434)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3$$anonfun$1(TreePickler.scala:433)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3(TreePickler.scala:433)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$3(TreePickler.scala:434)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:434)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$9(TreePickler.scala:474)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$8(TreePickler.scala:474)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:474)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTreeUnlessEmpty(TreePickler.scala:321)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$1(TreePickler.scala:338)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$adapted$1(TreePickler.scala:340)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:340)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:565)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:365)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:365)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$26(TreePickler.scala:591)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$24(TreePickler.scala:592)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:592)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$1(TreePickler.scala:335)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$adapted$1(TreePickler.scala:340)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:340)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:567)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:365)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:365)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$29(TreePickler.scala:607)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$adapted$27(TreePickler.scala:607)
[error] scala.Function0.apply$mcV$sp(Function0.scala:39)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:58)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:607)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickle$$anonfun$1(TreePickler.scala:779)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:779)
[error] dotty.tools.dotc.transform.Pickler.run$$anonfun$1$$anonfun$1(Pickler.scala:72)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.transform.Pickler.run$$anonfun$1(Pickler.scala:110)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.transform.Pickler.run(Pickler.scala:110)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:311)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:312)
[error] dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:115)
[error] dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:234)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328)
[error] dotty.tools.dotc.Run.runPhases$1(Run.scala:245)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:253)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:262)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:262)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:186)
[error] dotty.tools.dotc.Run.compile(Run.scala:170)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
[error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:193)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:183)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:179)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:177)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:463)
[error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
[error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:418)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:405)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:171)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2364)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2314)
[error] sbt.internal.server.BspCompileTask$.$anonfun$compute$1(BspCompileTask.scala:30)
[error] sbt.internal.io.Retry$.apply(Retry.scala:46)
[error] sbt.internal.io.Retry$.apply(Retry.scala:28)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:30)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2312)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] sbt.Execute.work(Execute.scala:291)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error] java.base/java.lang.Thread.run(Thread.java:833)
@armanbilge armanbilge added itype:bug itype:crash stat:needs triage Every issue needs to have an "area" and "itype" label labels Aug 5, 2022
@WojciechMazur
Copy link
Contributor

Bisect points to ff8659e from PR #12703 (Regression happened between 3.0.1 and 3.0.2)

@WojciechMazur WojciechMazur added regression This worked in a previous version but doesn't anymore and removed stat:needs triage Every issue needs to have an "area" and "itype" label labels Aug 5, 2022
@dwijnand
Copy link
Member

dwijnand commented Aug 5, 2022

I think this was fixed yesterday, by @bishabosha's #15814! How's that for an SLA? Fixed before it's discovered to be broken!

Also, minimised to

final case class Foo[A]()

class Test:
  def test = run(Foo())
  def run[X](x: X)(using deriving.Mirror.Of[X]) = true

@armanbilge
Copy link
Contributor Author

I can confirm it's fixed in 3.2.1-RC1-bin-20220804-5dee30b-NIGHTLY. If only I'd waited a day to report! I always check the nightly before minimizing 😂 😩

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:pickling itype:bug itype:crash regression This worked in a previous version but doesn't anymore
Projects
None yet
Development

No branches or pull requests

4 participants