Open
Description
Discussed in #8650
Originally posted by Marcono1234 April 2, 2022
When compiled classes have constant fields, source code referencing them uses the constant value. A simple example for this is the following:
class ConstantTest {
static final int VALUE = Integer.MAX_VALUE;
}
Compiling this class and inspecting it with javap -v
shows that the value of Integer.MAX_VALUE
, that is 2147483647, has been stored in the class file (instead of performing a field read). This is also explicitly mentioned in JLS 17 §13.4.9.
Currently CodeQL's CompileTimeConstantExpr
does not support this; I assume because the information is missing from the database. Would it be possible to store this information in the database during extraction?