Fixed redeclaration from incremental compilation. Added workaround for JPS bug.
Original commit: 3226093fa6
This commit is contained in:
@@ -49,6 +49,11 @@ public class KotlinSourceFileCollector {
|
|||||||
dirtyFilesHolder.processDirtyFiles(new FileProcessor<JavaSourceRootDescriptor, ModuleBuildTarget>() {
|
dirtyFilesHolder.processDirtyFiles(new FileProcessor<JavaSourceRootDescriptor, ModuleBuildTarget>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor root) throws IOException {
|
public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor root) throws IOException {
|
||||||
|
//TODO this is a workaround for bug in JPS: the latter erroneously calls process with invalid parameters
|
||||||
|
if (!root.getTarget().equals(target)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (isKotlinSourceFile(file)) {
|
if (isKotlinSourceFile(file)) {
|
||||||
result.putValue(target, file);
|
result.putValue(target, file);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,12 +28,31 @@ import java.util.regex.Pattern;
|
|||||||
/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||||
@SuppressWarnings("all")
|
@SuppressWarnings("all")
|
||||||
@TestMetadata("jps-plugin/testData/incremental")
|
@TestMetadata("jps-plugin/testData/incremental")
|
||||||
@InnerTestClasses({IncrementalJpsTestGenerated.PureKotlin.class})
|
@InnerTestClasses({IncrementalJpsTestGenerated.CircularDependency.class, IncrementalJpsTestGenerated.PureKotlin.class})
|
||||||
public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
|
public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
|
||||||
public void testAllFilesPresentInIncremental() throws Exception {
|
public void testAllFilesPresentInIncremental() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental"), Pattern.compile("^([^\\.]+)$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental"), Pattern.compile("^([^\\.]+)$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("jps-plugin/testData/incremental/circularDependency")
|
||||||
|
@InnerTestClasses({})
|
||||||
|
public static class CircularDependency extends AbstractIncrementalJpsTest {
|
||||||
|
public void testAllFilesPresentInCircularDependency() throws Exception {
|
||||||
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/circularDependency"), Pattern.compile("^([^\\.]+)$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("simple")
|
||||||
|
public void testSimple() throws Exception {
|
||||||
|
doTest("jps-plugin/testData/incremental/circularDependency/simple/");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Test innerSuite() {
|
||||||
|
TestSuite suite = new TestSuite("CircularDependency");
|
||||||
|
suite.addTestSuite(CircularDependency.class);
|
||||||
|
return suite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jps-plugin/testData/incremental/pureKotlin")
|
@TestMetadata("jps-plugin/testData/incremental/pureKotlin")
|
||||||
@InnerTestClasses({})
|
@InnerTestClasses({})
|
||||||
public static class PureKotlin extends AbstractIncrementalJpsTest {
|
public static class PureKotlin extends AbstractIncrementalJpsTest {
|
||||||
@@ -231,6 +250,7 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
|
|||||||
public static Test suite() {
|
public static Test suite() {
|
||||||
TestSuite suite = new TestSuite("IncrementalJpsTestGenerated");
|
TestSuite suite = new TestSuite("IncrementalJpsTestGenerated");
|
||||||
suite.addTestSuite(IncrementalJpsTestGenerated.class);
|
suite.addTestSuite(IncrementalJpsTestGenerated.class);
|
||||||
|
suite.addTest(CircularDependency.innerSuite());
|
||||||
suite.addTest(PureKotlin.innerSuite());
|
suite.addTest(PureKotlin.innerSuite());
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/b/BPackage-module2_b-*.class
|
||||||
|
out/production/module2/b/BPackage.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_b.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/a/A.class
|
||||||
|
out/production/module1/a/APackage-module1_a-*.class
|
||||||
|
out/production/module1/a/APackage.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
End of files
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
module1->module2
|
||||||
|
module2->module1
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
class A
|
||||||
|
|
||||||
|
fun a() {
|
||||||
|
// TODO: this call is compiled via package facade or package part depending on if callee comes from compiled or source
|
||||||
|
// Must be uncommented when modules are supported in compiler
|
||||||
|
//b.b()
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun b() {
|
||||||
|
// TODO: this call is compiled via package facade or package part depending on if callee comes from compiled or source
|
||||||
|
// Must be uncommented when modules are supported in compiler
|
||||||
|
// a.a()
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun b() {
|
||||||
|
// TODO: this call is compiled via package facade or package part depending on if callee comes from compiled or source
|
||||||
|
// Must be uncommented when modules are supported in compiler
|
||||||
|
// a.a()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun bb() {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user