sourcecode icon indicating copy to clipboard operation
sourcecode copied to clipboard

Add utility to get enclosing method name reliably

Open evis opened this issue 4 years ago • 0 comments

Currently, we're able to get enclosing method args with sourcecode.Args. Also, in some cases we can get enclosing method name:

def printMethodName()(implicit name: Name) =
  println(name.value)

def myMethod() = 
  printMethodName() // prints "myMethod"

But if there is a local val declared, then implicitly[Name] returns the val's name:

def myMethod() =
  val breakPrinting = printMethodName() // prints "breakPrinting"

It would be convenient to have something like this:

def printMethodName()(implicit method: Method) =
  println(method.value)

def myMethod() = 
  printMethodName() // prints "myMethod"

def myMethod() =
  val breakPrinting = printMethodName() // prints "myMethod"

evis avatar Feb 03 '21 06:02 evis