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
- Alphabetic
- By Inheritance
- LineNumbers
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- sealed trait Result extends AnyRef
- final case class SourceFile(filename: String) extends Result with Product with Serializable
- final case class SourceFileLines(filename: String, from: Int, to: Int) extends Result with Product with Serializable
- final case class UnknownSourceFormat(explanation: String) extends Result with Product with Serializable
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
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.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- object NoSourceInfo extends Result with Product with Serializable