<div dir="ltr"><div>Hi.</div><div><br></div><div>1. There seems to be a problem while javac writes inlined constant references to .class-file</div><div>Initial enhancement was implemented in <a href="https://bugs.openjdk.java.net/browse/JDK-7153958">https://bugs.openjdk.java.net/browse/JDK-7153958</a>.</div><div>To understand my problem consider a little example:</div><div><br></div><div>---Const1.java:</div><div>public class Const1 {</div><div>  public static final String CONST = "";</div><div>}</div><div><br></div><div>---Const2.java:</div><div>public class Const2 {</div><div>  public static final String CONST = "";</div><div>}</div><div><br></div><div>---Main.java:</div><div>public class Main {</div><div>    public static void main(String[] args) {</div><div>        if (Const1.CONST == "q" && Const2.CONST == "w") {</div><div>            <span style="line-height:1.5">SomeClass.doSome();</span></div><div>        }</div><div>    }</div><div>}</div><div><br></div><div>Here I have a constant condition "Const1.CONST == "q" && Const2.CONST == "w"" that will be inlined by javac.</div><div>Since it was inlined I expect to see Const1 and Const2 in constant pool of Main.class. But I see only Const1.</div><div>Seems there is a bug around of Lower#addPrunedInfo() method usages and test case CPoolRefClassContainingInlinedCts</div><div>is poor because it tests only simplest cases.</div><div><br></div><div>2. <a href="https://bugs.openjdk.java.net/browse/JDK-7153958">https://bugs.openjdk.java.net/browse/JDK-7153958</a> was introduced to help analyze dependencies(!).</div><div>Consider example above: h<span style="line-height:1.5">ere then-statement (SomeClass.doSome()) is inlined since if-statement condition is always false and reference to SomeClass is not presented</span></div><div>in constant pool of Main.class. But it's required to analyze dependencies of Main class.</div><div><br></div><div>So, do you have any plans to fix/enhance these problems?</div><div>I think that JDK-7153958 is useless and confusing at this moment with current implementation but can be very useful for tools developers.</div><div><br></div><div>Dmitry Batkovich</div></div>