implicit def safeCast
[X,Y,
_ >: X
<: Y
]( x
:X
):Y
= x.
asInstanceOf[Y
] case class L
[X
](val x
: X
) { def double[_ >: X
<: Int
] = x.
asInstanceOf[Int
]*2 }
println(L(42).double)
}
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7CiAgICBpbXBsaWNpdCBkZWYgc2FmZUNhc3RbWCxZLCBfID46IFggPDogWV0oIHg6WCApOlkgPSB4LmFzSW5zdGFuY2VPZltZXQogICAgY2FzZSBjbGFzcyBMW1hdKHZhbCB4OiBYKSB7IGRlZiBkb3VibGVbXyA+OiBYIDw6IEludF0gPSB4LmFzSW5zdGFuY2VPZltJbnRdKjIgfQogICAgCiAgICBvdmVycmlkZSBkZWYgbWFpbihhcmdzOiBBcnJheVtTdHJpbmddKSA9IHsKICAgICAgICBwcmludGxuKEwoNDIpLmRvdWJsZSkKICAgIH0KfQ==