Packages

o

akka.util

LineNumbers

object LineNumbers

This is a minimized byte-code parser that concentrates exclusively on line numbers and source file extraction. It works for all normal classes up to format 52:0 (JDK8), and it also works for Lambdas that are Serializable. The latter restriction is due to the fact that the proxy object generated by LambdaMetafactory otherwise contains no information about which method backs this particular lambda (and there might be multiple defined within a single class).

Source
LineNumbers.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LineNumbers
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait Result extends AnyRef
  2. final case class SourceFile(filename: String) extends Result with Product with Serializable
  3. final case class SourceFileLines(filename: String, from: Int, to: Int) extends Result with Product with Serializable
  4. final case class UnknownSourceFormat(explanation: String) extends Result with Product with Serializable

Value Members

  1. def apply(obj: AnyRef): Result

    Scala API: Obtain line number information for the class defining the given object.

    Scala API: Obtain line number information for the class defining the given object. This is done by reading the byte code (a potentially blocking IO operation) and interpreting the debug information that it may contain.

    This does not work for Java 8 lambdas that are not Serializable, because the language designers have consciously made it impossible to obtain the byte code for those.

  2. def for(obj: AnyRef): Result

    Java API: Obtain line number information for the class defining the given object.

    Java API: Obtain line number information for the class defining the given object. This is done by reading the byte code (a potentially blocking IO operation) and interpreting the debug information that it may contain.

    This does not work for Java 8 lambdas that are not Serializable, because the language designers have consciously made it impossible to obtain the byte code for those.

  3. def prettyName(obj: AnyRef): String

    Extract source information if available and format a string to identify the class definition in question.

    Extract source information if available and format a string to identify the class definition in question. This will include the package name and either source file information or the class name.

  4. object NoSourceInfo extends Result with Product with Serializable