Closed
Description
Minimized code
// using 3.0.0-M2
import scala.quoted._
import scala.compiletime.summonInline
object Invalid {
inline def apply[A, B]: Any = ${ invalidImpl[A, B] }
def invalidImpl[A, B](using qctx: Quotes, tpeA: Type[A], tpeB: Type[B]): Expr[Any] = {
'{summonInline[B <:< A]}
}
}
/************ other file ************/
class A
class B extends A
println(Invalid[A, B]) // compiles as expected
println(Invalid[B, A]) // does also compile!
Expectation
'{summonInline[B <:< A]}
should not compile when subtyping rules are violated