Change KotlinSourceDebugExtension line to take end range as size
Otherwise the range seems to become negative.
Change-Id: Icf0ff9d9caf3280fbdac2436c85a5cc9e17c3aa9
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinSourceDebugExtensionParser.java b/src/main/java/com/android/tools/r8/kotlin/KotlinSourceDebugExtensionParser.java
index fcf1453..a0d4df2 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinSourceDebugExtensionParser.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinSourceDebugExtensionParser.java
@@ -152,7 +152,7 @@
"Unexpected EOF - no debug line positions");
}
// Iterate over the debug line number positions:
- // <from>#<file>,<to>:<debug-line-position>
+ // <from>#<file>,<range>:<debug-line-position>
// or
// <from>#<file>:<debug-line-position>
reader.readUntil(
@@ -223,18 +223,18 @@
// The range may have a different end than start.
String fileAndEndRange = original.substring(fileIndexSplit + 1);
int endRangeCharPosition = fileAndEndRange.indexOf(',');
- int originalEnd = originalStart;
+ int size = originalStart;
if (endRangeCharPosition > -1) {
// The file should be at least one number wide.
assert endRangeCharPosition > 0;
- originalEnd = Integer.parseInt(fileAndEndRange.substring(endRangeCharPosition + 1));
+ size = Integer.parseInt(fileAndEndRange.substring(endRangeCharPosition + 1));
} else {
endRangeCharPosition = fileAndEndRange.length();
}
int fileIndex = Integer.parseInt(fileAndEndRange.substring(0, endRangeCharPosition));
Source thisFileSource = builder.files.get(fileIndex);
if (thisFileSource != null) {
- Range range = new Range(originalStart, originalEnd);
+ Range range = new Range(originalStart, originalStart + size);
Position position = new Position(thisFileSource, range);
Position existingPosition = builder.positions.put(target, position);
assert existingPosition == null
diff --git a/src/main/java/com/android/tools/r8/naming/Range.java b/src/main/java/com/android/tools/r8/naming/Range.java
index 231a143..c91ae99 100644
--- a/src/main/java/com/android/tools/r8/naming/Range.java
+++ b/src/main/java/com/android/tools/r8/naming/Range.java
@@ -12,6 +12,7 @@
public Range(int from, int to) {
this.from = from;
this.to = to;
+ // TODO(b/145897713): Seems like we should be able to assert from <= to.
}
public boolean contains(int value) {