Fixed
Status Update
Comments
js...@google.com <js...@google.com> #2
Thank you for the report and the code causing the issue. I have landed a reproduction which shows that the code thrown an ArrayIndexOutOfBoundsException
from the last bitSet.toByteArray()[0]
when not processed by R8.
ju...@google.com <ju...@google.com> #3
Project: r8
Branch: main
Author: Søren Gjesse <
Link:
Add reproduction of
Expand for full commit details
Add reproduction of issue 391417819
Bug: b/391417819
Change-Id: I37eb909c100104fadeb895bf5d930f4f54e94ba0
Files:
- A
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: bf9b1962052bf91689120a09deded518e37862a2
Date: Wed Jan 22 09:41:15 2025
js...@google.com <js...@google.com> #4
deleted
js...@google.com <js...@google.com>
js...@google.com <js...@google.com>
an...@google.com <an...@google.com> #5
I'm really sorry, please use the source code below:
public class R8Test {
public byte[] toBytes(boolean on) {
byte[] bytes = new byte[3];
bytes[0] = 1;
BitSet bits = new BitSet(8);
byte[] byteArray = bits.toByteArray();
if (byteArray != null && byteArray.length >= 1) {
bytes[1] = bits.toByteArray()[0];
}
BitSet bitSet = new BitSet(8);
byte[] byteArray2 = bits.toByteArray();
if (byteArray2 != null && byteArray2.length >= 1) {
bytes[2] = bitSet.toByteArray()[0];
}
return bytes;
}
}
pr...@google.com <pr...@google.com> #6
Thank you for the update. Most likely the initial source code will still be sufficient to fix the issue.
Description
Seeing this when trying to update AndroidX to lint 31.8.0-alpha08 from 31.8.0-alpha06. Assuming this is related to b/370778975 .
When an incorrect constant is used for an IntDef, and the constant was defined using the int shift operator, the lint error is appearing on the constant definition instead of the usage.
Repro example:
Instead of a lint error appearing on the
flags = SHIFT_FLAG
line, it instead appears on the definition ofSHIFT_FLAG
: