Recompile subtypes when class member is changed

This commit is contained in:
Alexey Tsvetkov
2016-01-22 15:47:35 +03:00
parent 4296b7f882
commit a474165a8f
25 changed files with 153 additions and 7 deletions
@@ -5,6 +5,8 @@ Compiling files:
src/B.kt
End of files
Cleaning output files:
out/production/module/A$AA.class
out/production/module/A.class
out/production/module/CompanionExtensionKt.class
out/production/module/CompanionReferenceExplicitKt.class
out/production/module/CompanionReferenceImplicitKt.class
@@ -12,6 +14,7 @@ out/production/module/ImportedMemberKt.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/A.kt
src/companionExtension.kt
src/companionReferenceExplicit.kt
src/companionReferenceImplicit.kt
@@ -28,6 +31,7 @@ Cleaning output files:
out/production/module/B.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/companionExtension.kt
src/companionReferenceExplicit.kt
@@ -6,8 +6,10 @@ 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
@@ -6,8 +6,10 @@ 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
@@ -6,9 +6,11 @@ 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
COMPILATION FAILED
@@ -20,5 +22,6 @@ out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/AChild.kt
src/useAChild.kt
End of files
@@ -0,0 +1,3 @@
open class A {
open fun f(c: C<Any>) {}
}
@@ -0,0 +1,3 @@
open class A {
open fun f(c: C<Any?>) {}
}
@@ -0,0 +1,3 @@
open class A {
open fun f(c: C<Any>) {}
}
@@ -0,0 +1,3 @@
class B : A() {
override fun f(c: C<Any>) {}
}
@@ -0,0 +1 @@
class C<out T>
@@ -0,0 +1,23 @@
Cleaning output files:
out/production/module/A.class
End of files
Compiling files:
src/A.kt
End of files
Cleaning output files:
out/production/module/B.class
End of files
Compiling files:
src/B.kt
End of files
COMPILATION FAILED
'f' overrides nothing
Cleaning output files:
out/production/module/A.class
End of files
Compiling files:
src/A.kt
src/B.kt
End of files
@@ -0,0 +1,3 @@
interface A {
fun f(c: C<Any>)
}
@@ -0,0 +1,3 @@
open class B {
fun f(c: C<Any>) {}
}
@@ -0,0 +1,3 @@
open class B {
fun f(c: C<Int>) {}
}
@@ -0,0 +1,3 @@
open class B {
fun f(c: C<Any>) {}
}
@@ -0,0 +1 @@
open class BA : B(), A
@@ -0,0 +1 @@
class C<out T>
@@ -0,0 +1,23 @@
Cleaning output files:
out/production/module/B.class
End of files
Compiling files:
src/B.kt
End of files
Cleaning output files:
out/production/module/BA.class
End of files
Compiling files:
src/BA.kt
End of files
COMPILATION FAILED
Class 'BA' must be declared abstract or implement abstract member public abstract fun f(c: C<kotlin.Any>): kotlin.Unit defined in A
Cleaning output files:
out/production/module/B.class
End of files
Compiling files:
src/B.kt
src/BA.kt
End of files
@@ -7,9 +7,11 @@ 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
COMPILATION FAILED
@@ -21,5 +23,6 @@ out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/AChild.kt
src/useAChild.kt
End of files