// minimization of failure in run/t4813.scala related to the special
// case for default methods that override methods owned by Object.class in
// Java interfaces.
trait C[A >: Null <: AnyRef] { override def clone(): A = null }
trait X extends C[X]
class D extends X { def foo = (this: X).clone() }
object Test {
  def main(args: Array[String]): Unit = {
    assert(new D().foo == null)
  }
}
