Skip to content

runtime reflection: isVal return incorrect value for traits. #11582

Open
@rssh

Description

@rssh

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions