mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-09 20:42:52 +07:00
incremental compilation: ensure javac always resolves dependencies within same module against sources and not classes compiled on previous steps (IDEA-108215)
This commit is contained in:
+10
@@ -0,0 +1,10 @@
|
||||
Cleaning output files:
|
||||
out/production/RecompileTwinDependencies/package1/A.class
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/RecompileTwinDependencies/package1/C.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/package2/A.java
|
||||
src/package2/C.java
|
||||
End of files
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package com;
|
||||
|
||||
import package1.*;
|
||||
import package2.*;
|
||||
|
||||
public class B {
|
||||
public A get() { // resolves to "public package1.A get();" or "public package2.A get();" depending on where A is
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package package1;
|
||||
|
||||
public class A { // resolves to "class package1.A"
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package package1;
|
||||
|
||||
import com.B;
|
||||
|
||||
public class C {
|
||||
{
|
||||
new B().get(); // resolves to invoking of "com/B.get:()Lpackage1/A;"
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package package1;
|
||||
|
||||
// Dummy class for non-empty package
|
||||
public class Dummy {
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package package2;
|
||||
|
||||
public class A { // resolves to "class package2.A"
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package package2;
|
||||
|
||||
import com.B;
|
||||
|
||||
public class C {
|
||||
{
|
||||
new B().get(); // should be resolved to "com/B.get:()Lpackage2/A;"
|
||||
// but package2/C.java is first compiled when B.class still contains "public package1.A get();"
|
||||
// and compiler returns an error
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package package2;
|
||||
|
||||
// Dummy class for non-empty package
|
||||
public class Dummy {
|
||||
}
|
||||
Reference in New Issue
Block a user