Closed
Description
Compiler version
3.0.0-RC1
Latest Dotty nightly build version: 3.0.0-RC2-bin-20210219-aa7c21e-NIGHTLY
Minimized code
fixe X.scala:
package x
import scala.concurrent.Future
import scala.quoted._
import scala.compiletime._
trait CpsMonad[F[_]]
given FutureCpsMonad: CpsMonad[Future] with {}
class SLLoop[F[_]:CpsMonad]:
inline def apply(inline pf: PartialFunction[Any,Boolean]): Unit =
${
SLLoop.loopImpl[F]('pf, '{summonInline[CpsMonad[F]]})
}
object SLLoop:
def loopImpl[F[_]:Type](pf: Expr[PartialFunction[Any,Boolean]], m:Expr[CpsMonad[F]])(using Quotes): Expr[Unit] =
println(s"loopImpl: ${pf}")
'{ }
file Main.scala
package x
import scala.concurrent.Future
object Main:
def main(args:Array[String]):Unit =
SLLoop[Future].apply{
case "AAA" => true
}
Output
Latest Dotty nightly build version: 3.0.0-RC2-bin-20210219-aa7c21e-NIGHTLY
[info] loading settings for project root from build.sbt ...
[info] set current project to test (in build file:/Users/rssh/tests/dotty/summon-inline/)
[info] Executing in batch mode. For better performance use sbt's shell
[info] compiling 2 Scala sources to /Users/rssh/tests/dotty/summon-inline/target/scala-3.0.0-RC2/classes ...
[error] -- Error: /Users/rssh/tests/dotty/summon-inline/src/main/scala/x/Main.scala:8:24
[error] 8 | SLLoop[Future].apply{
[error] | ^
[error] | cannot reduce summonFrom with
[error] | patterns : case t @ _:x.CpsMonad[concurrent.Future]
[error] | This location contains code that was inlined from package.scala:144
[error] | This location contains code that was inlined from X.scala:16
[error] 9 | case "AAA" => true
[error] 10 | }
[error] one error found
[error] one error found
[error] (Compile / compileIncremental) Compilation failed
Expectation
Should compile.
(it works in 3.0.0-M3)