diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java index f349f6d69bc..748c87e713a 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java @@ -1466,6 +1466,12 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta doTest(fileName); } + @TestMetadata("innerClassNotGeneratedWhenRebuilding") + public void testInnerClassNotGeneratedWhenRebuilding() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/"); + doTest(fileName); + } + @TestMetadata("jvmNameChanged") public void testJvmNameChanged() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/jvmNameChanged/"); diff --git a/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Introspector.kt b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Introspector.kt new file mode 100644 index 00000000000..c46629ef944 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Introspector.kt @@ -0,0 +1,10 @@ +abstract class Introspector(protected val model: Model) { + protected abstract inner class Retriever(protected val transaction: Any) { + protected var model: Model = this@Introspector.model + } + + protected abstract inner class SchemaRetriever(transaction: Any): Retriever(transaction) { + protected inline fun inSchema(crossinline modifier: (Any) -> Unit) = + model.modify { schema -> modifier.invoke(schema) } + } +} diff --git a/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/IntrospectorImpl.kt.new b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/IntrospectorImpl.kt.new new file mode 100644 index 00000000000..75ae9d6cf2d --- /dev/null +++ b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/IntrospectorImpl.kt.new @@ -0,0 +1,12 @@ +class IntrospectorImpl(model: ModuleImpl) : Introspector(model) { + private inner class SchemaRetriever(transaction: Any) : Introspector.SchemaRetriever(transaction) { + internal fun retrieve() { + inSchema { schema -> println(schema) } + } + } +} + +class ModuleImpl : Model { + override fun modify(modifier: ModelModifier) {} +} + diff --git a/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Model.java b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Model.java new file mode 100644 index 00000000000..82f6d6476f6 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/Model.java @@ -0,0 +1,4 @@ +public interface Model { + void modify(ModelModifier modifier); +} + diff --git a/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/ModelModifier.java b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/ModelModifier.java new file mode 100644 index 00000000000..fb19636744f --- /dev/null +++ b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/ModelModifier.java @@ -0,0 +1,3 @@ +public interface ModelModifier { + void perform(Object element); +} diff --git a/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/build.log b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/build.log new file mode 100644 index 00000000000..632a8a2344b --- /dev/null +++ b/jps/jps-plugin/testData/incremental/classHierarchyAffected/innerClassNotGeneratedWhenRebuilding/build.log @@ -0,0 +1,7 @@ +================ Step #1 ================= + +Compiling files: + src/IntrospectorImpl.kt +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file