Add tests for class hierarchy incremental recompilation
This commit is contained in:
@@ -914,6 +914,7 @@ fun main(args: Array<String>) {
|
||||
model("incremental/pureKotlin", extension = null, excludeParentDirs = true)
|
||||
model("incremental/withJava", extension = null, excludeParentDirs = true)
|
||||
model("incremental/inlineFunCallSite", extension = null, excludeParentDirs = true)
|
||||
model("incremental/classHierarchyAffected", extension = null, excludeParentDirs = true)
|
||||
}
|
||||
|
||||
testClass<AbstractExperimentalIncrementalLazyCachesTest>() {
|
||||
|
||||
+136
@@ -1030,4 +1030,140 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("jps-plugin/testData/incremental/classHierarchyAffected")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class ClassHierarchyAffected extends AbstractExperimentalIncrementalJpsTest {
|
||||
public void testAllFilesPresentInClassHierarchyAffected() throws Exception {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/classHierarchyAffected"), Pattern.compile("^([^\\.]+)$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("annotationListChanged")
|
||||
public void testAnnotationListChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/annotationListChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("bridgeGenerated")
|
||||
public void testBridgeGenerated() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/bridgeGenerated/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("classBecameFinal")
|
||||
public void testClassBecameFinal() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classBecameFinal/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("classBecameInterface")
|
||||
public void testClassBecameInterface() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classBecameInterface/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("classBecamePrivate")
|
||||
public void testClassBecamePrivate() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classBecamePrivate/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("constructorVisibilityChanged")
|
||||
public void testConstructorVisibilityChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/constructorVisibilityChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("flagsAndMemberInDifferentClassesChanged")
|
||||
public void testFlagsAndMemberInDifferentClassesChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInDifferentClassesChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("jvmNameChanged")
|
||||
public void testJvmNameChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/jvmNameChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("methodAdded")
|
||||
public void testMethodAdded() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/methodAdded/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("methodAnnotationAdded")
|
||||
public void testMethodAnnotationAdded() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/methodAnnotationAdded/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("methodNullabilityChanged")
|
||||
public void testMethodNullabilityChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/methodNullabilityChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("methodParameterWithDefaultValueAdded")
|
||||
public void testMethodParameterWithDefaultValueAdded() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/methodParameterWithDefaultValueAdded/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("methodRemoved")
|
||||
public void testMethodRemoved() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/methodRemoved/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("multiModuleCircular")
|
||||
public void testMultiModuleCircular() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/multiModuleCircular/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("multiModuleExported")
|
||||
public void testMultiModuleExported() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/multiModuleExported/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("multiModuleSimple")
|
||||
public void testMultiModuleSimple() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/multiModuleSimple/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("propertyNullabilityChanged")
|
||||
public void testPropertyNullabilityChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/propertyNullabilityChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("starProjectionUpperBoundChanged")
|
||||
public void testStarProjectionUpperBoundChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/starProjectionUpperBoundChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("supertypesListChanged")
|
||||
public void testSupertypesListChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/supertypesListChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("typeParameterListChanged")
|
||||
public void testTypeParameterListChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/typeParameterListChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("varianceChanged")
|
||||
public void testVarianceChanged() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/varianceChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.kotlin.jps.build
|
||||
|
||||
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
||||
import org.jetbrains.kotlin.config.IncrementalCompilation
|
||||
import org.jetbrains.kotlin.jps.incremental.CacheVersionProvider
|
||||
|
||||
abstract class AbstractExperimentalIncrementalJpsTest : AbstractIncrementalJpsTest() {
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package foo
|
||||
|
||||
annotation class Ann
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AChild : A()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AGrandChild : AChild()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class ATypeParameter<T : A>
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/ImportStarKt.class
|
||||
out/production/module/bar/ReferencedByFqNameKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/AGrandChild.class
|
||||
out/production/module/foo/ATypeParameter.class
|
||||
out/production/module/foo/ClassLiteralKt.class
|
||||
out/production/module/foo/FunctionParameterKt.class
|
||||
out/production/module/foo/GetAKt.class
|
||||
out/production/module/foo/ReturnTypeKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
End of files
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
out/production/module/foo/Ann.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/ImportStarKt.class
|
||||
out/production/module/bar/ReferencedByFqNameKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/AGrandChild.class
|
||||
out/production/module/foo/ATypeParameter.class
|
||||
out/production/module/foo/ClassLiteralKt.class
|
||||
out/production/module/foo/FunctionParameterKt.class
|
||||
out/production/module/foo/GetAKt.class
|
||||
out/production/module/foo/ReturnTypeKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
End of files
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun classLiteral() {
|
||||
A::class
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useA(a: A) {
|
||||
a.f()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getA() = A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.AGrandChild
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun importStarUse() {
|
||||
A()
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package bar
|
||||
|
||||
fun createAByFqName() {
|
||||
foo.A()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAExplicit(): A = A()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAImplicit() = getA()
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A<T> {
|
||||
open fun f(x: T) {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class AChild : A<Int>()
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
class AChild : A<Int>() {
|
||||
override fun f(x: Int) {}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/AChild.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/foo/UseAChildKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/useAChild.kt
|
||||
End of files
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useAChild(a: AChild) {
|
||||
a.f(0)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AChild : A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AGrandChild : AChild()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class ATypeParameter<T : A>
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/ImportStarKt.class
|
||||
out/production/module/bar/ReferencedByFqNameKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/AGrandChild.class
|
||||
out/production/module/foo/ATypeParameter.class
|
||||
out/production/module/foo/ClassLiteralKt.class
|
||||
out/production/module/foo/FunctionParameterKt.class
|
||||
out/production/module/foo/GetAKt.class
|
||||
out/production/module/foo/ReturnTypeImplicitKt.class
|
||||
out/production/module/foo/ReturnTypeKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
src/returnTypeImplicit.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
This type is final, so it cannot be inherited from
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
src/returnTypeImplicit.kt
|
||||
End of files
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun classLiteral() {
|
||||
A::class
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useA(a: A) {
|
||||
a.f()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getA() = A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.AGrandChild
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun importStarUse() {
|
||||
A()
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package bar
|
||||
|
||||
fun createAByFqName() {
|
||||
foo.A()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAExplicit(): A = A()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAImplicit() = getA()
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
interface A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AChild : A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AGrandChild : AChild()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class ATypeParameter<T : A>
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/ImportStarKt.class
|
||||
out/production/module/bar/ReferencedByFqNameKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/AGrandChild.class
|
||||
out/production/module/foo/ATypeParameter.class
|
||||
out/production/module/foo/ClassLiteralKt.class
|
||||
out/production/module/foo/FunctionParameterKt.class
|
||||
out/production/module/foo/GetAKt.class
|
||||
out/production/module/foo/ReturnTypeImplicitKt.class
|
||||
out/production/module/foo/ReturnTypeKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
src/returnTypeImplicit.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
This class does not have a constructor
|
||||
Unresolved reference: A
|
||||
Unresolved reference: A
|
||||
Unresolved reference: A
|
||||
Unresolved reference: A
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A$DefaultImpls.class
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
src/returnTypeImplicit.kt
|
||||
End of files
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun classLiteral() {
|
||||
A::class
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useA(a: A) {
|
||||
a.f()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getA() = A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.AGrandChild
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun importStarUse() {
|
||||
A()
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package bar
|
||||
|
||||
fun createAByFqName() {
|
||||
foo.A()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAExplicit(): A = A()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAImplicit() = getA()
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
private open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AChild : A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AGrandChild : AChild()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class ATypeParameter<T : A>
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/ImportStarKt.class
|
||||
out/production/module/bar/ReferencedByFqNameKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/AGrandChild.class
|
||||
out/production/module/foo/ATypeParameter.class
|
||||
out/production/module/foo/ClassLiteralKt.class
|
||||
out/production/module/foo/FunctionParameterKt.class
|
||||
out/production/module/foo/GetAKt.class
|
||||
out/production/module/foo/ReturnTypeKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Subclass effective visibility 'public' should be the same or less permissive than its superclass effective visibility 'private'
|
||||
Generic effective visibility 'public' should be the same or less permissive than its type parameter bound effective visibility 'private'
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Function effective visibility 'public' should be the same or less permissive than its parameter type effective visibility 'private'
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Function effective visibility 'public' should be the same or less permissive than its return type effective visibility 'private'
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Function effective visibility 'public' should be the same or less permissive than its return type effective visibility 'private'
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AChild.kt
|
||||
src/AGrandChild.kt
|
||||
src/ATypeParameter.kt
|
||||
src/classLiteral.kt
|
||||
src/functionParameter.kt
|
||||
src/getA.kt
|
||||
src/importA.kt
|
||||
src/importAGrandChild.kt
|
||||
src/importStar.kt
|
||||
src/referencedByFqName.kt
|
||||
src/returnType.kt
|
||||
End of files
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun classLiteral() {
|
||||
A::class
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useA(a: A) {
|
||||
a.f()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getA() = A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.AGrandChild
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun importStarUse() {
|
||||
A()
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package bar
|
||||
|
||||
fun createAByFqName() {
|
||||
foo.A()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAExplicit(): A = A()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun getAImplicit() = getA()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A private constructor ()
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class AChild : A()
|
||||
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/CreateAKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/createA.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
Cannot access '<init>': it is 'private' in 'A'
|
||||
Cannot access '<init>': it is 'private' in 'A'
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AChild.kt
|
||||
src/createA.kt
|
||||
End of files
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun createA() {
|
||||
A()
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun createAChild() {
|
||||
AChild()
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A : AParent()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AChild : A()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class AParent
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
class B {
|
||||
fun f() {}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
class B {
|
||||
open fun f() {}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
out/production/module/foo/B.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AParent.kt
|
||||
src/B.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/bar/UseBKt.class
|
||||
out/production/module/foo/AChild.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/importA.kt
|
||||
src/importAChild.kt
|
||||
src/useB.kt
|
||||
End of files
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.A
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package bar
|
||||
|
||||
import foo.AChild
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package bar
|
||||
|
||||
import foo.B
|
||||
|
||||
fun useB() {
|
||||
B().f()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
@JvmName("g")
|
||||
fun f() {}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
@JvmName("h")
|
||||
fun f() {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class AChild : A()
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/foo/AChild.class
|
||||
out/production/module/foo/UseAChildKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/useAChild.kt
|
||||
End of files
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useAChild(a: AChild) {
|
||||
a.f()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
open class A
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
open class A {
|
||||
fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
class AChild : A()
|
||||
@@ -0,0 +1,13 @@
|
||||
Cleaning output files:
|
||||
out/production/module/foo/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/foo/UseAChildKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/useAChild.kt
|
||||
End of files
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
fun useAChild(a: AChild) {
|
||||
a.f()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package foo
|
||||
|
||||
fun AChild.f() {}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user