sealed trait MyGADT[T]
final case class VariantInt(value: Int) extends MyGADT[Int]
final case class VariantString(value: String) extends MyGADT[String]
def doStuff[T](gadt: MyGADT[T]): T = {
gadt match {
case VariantInt(value) => value
case VariantString(value) => value
}
}
Produces the following false positives:
[error] MyGADT.scala:7:34: [scapegoat] Use of asInstanceOf
[error] Use of asInstanceOf is considered a bad practice - consider using pattern matching instead.
[error] value.asInstanceOf[T]
[error] case VariantInt(value) => value
[error] MyGADT.scala:8:34: [scapegoat] Use of asInstanceOf
[error] Use of asInstanceOf is considered a bad practice - consider using pattern matching instead.
[error] value.asInstanceOf[T]
[error] case VariantInt(value) => value
This code:
Produces the following false positives: