How to write the function isCaseObject in scala?

scala

Solution

Using reflection (Scala 2.10M4), this can be done as follows:

import scala.reflect.runtime.universe.Flag
import scala.reflect.runtime.{ currentMirror => cm }

object Check {

  def isCaseObject(x:Any): Boolean = {
    cm.reflect(x).symbol.hasFlag(Flag.CASE)
  }

}

Problem

How can i write a isCaseObject function in scala, so that this works: ``` def isCaseObject(x:Any) = /* Some Code */ case object aCaseObject println(isCaseObject(aCaseObject)) //true println(isCaseObject("not a case object")) //false ```

Original source