Skip to content

summonInline[B <:< A] compiles when quoted despite B not being a subtype of A #10709

Closed
@maphi

Description

@maphi

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions