Compiling the following program with javac 9-ea+149 succeeds or fails depending on the order the sources are compiled in.
=== p/A.java ===
package p;
class A extends B implements S {}
=== p/B.java ===
package p;
import static p.A.I;
class B extends I {}
=== p/S.java ===
package p;
interface S {
class I {}
}
===
$ javac p/B.java p/A.java p/S.java
... ok
$ javac p/A.java p/B.java p/S.java
p/B.java:3: error: cannot find symbol
class B extends I {}
^
symbol: class I
1 error
=== p/A.java ===
package p;
class A extends B implements S {}
=== p/B.java ===
package p;
import static p.A.I;
class B extends I {}
=== p/S.java ===
package p;
interface S {
class I {}
}
===
$ javac p/B.java p/A.java p/S.java
... ok
$ javac p/A.java p/B.java p/S.java
p/B.java:3: error: cannot find symbol
class B extends I {}
^
symbol: class I
1 error
- relates to
-
JDK-8148131 compilation result depends on order of sources
-
- Closed
-