Class StructuredLineNumberInfo

java.lang.Object
proguard.classfile.attribute.LineNumberInfo
proguard.classfile.attribute.StructuredLineNumberInfo

public class StructuredLineNumberInfo extends LineNumberInfo
Line number info with extra information for lines that came from a different source than the current method (e.g. inlined from a different method). Tracking this information is necessary for printing a correct mapping file.

The structured line number info contains:

  • Source string indicating the originating class/method of the line.
  • Optional start/end line number indicating the original line numbers for a block of inlined instructions.
  • A list of origins, indicating the transformations these lines underwent, e.g. multiple levels of inlining
  • A block ID, that identifies a group of lines that belongs to a singular block.

Since these transformations operate on blocks of lines, and the mapping file identifies blocks rather than singular lines, StructuredLineNumberInfo objects are generated through a StructuredLineNumberInfo.Block object, which is a factory object that generates StructuredLineNumberInfos with consistent block IDs.