Open
Description
scala -version: 2.13.0
Example of code:
package x
trait X {
val y: Int = 10
}
object Main {
import scala.reflect._
import scala.reflect.api._
def retrieveVals(u:Universe)(ownerType:u.Type): Iterable[u.TermSymbol] = {
ownerType.members.filter(_.isTerm).map(_.asTerm).filter(x => x.isVal )
}
def main(args:Array[String]) {
import scala.reflect.runtime.{universe=>ru}
val mirror = ru.runtimeMirror(this.getClass.getClassLoader)
val x = new X() {}
val im = mirror.reflect(x);
val l = retrieveVals(ru)(im.symbol.typeSignature)
Console.println(l)
}
}
return empty list, i.e. isVal for y returns false.