<div dir="ltr">I think I found a bug related to JEP 216. With javac9-dev @ r2850, the following program fails to compile unless the order of imports is reversed.<div><br></div><div>It looks like the current implementation isn't lazy enough to handle the dependency between the two on-demand imports if 'I' is inherited into 'C'. If 'I' is declared directly in 'C' then it works.<br><br>{{{<br>package P;<br><br>import static P.Outer.Nested.*;<br>import static P.Q.C.*;<br><br>public class Outer {<br>  public static class Nested implements I {<br>  }<br>}<br><br>package P.Q;<br><br>public class C extends D {<br>}<br><br>package P.Q;<br><br>public class D {<br>  public interface I {<br>  }<br>}<br>}}}<br><br>$ javac P/Outer.java P/Q/D.java P/Q/C.java<br>P/Outer.java:7: error: cannot find symbol<br>  public static class Nested implements I {<br>                                        ^<br>  symbol:   class I<br>  location: class Outer<br>1 error</div></div>