Add tests for class hierarchy incremental recompilation

This commit is contained in:
Alexey Tsvetkov
2015-12-17 21:30:17 +03:00
parent e2794cfa3f
commit 9190029fcc
206 changed files with 1602 additions and 3 deletions
@@ -0,0 +1 @@
class A<in T>(x: T)
@@ -0,0 +1 @@
class A<out T>(x: T)
@@ -0,0 +1 @@
open class B
@@ -0,0 +1 @@
class C : B()
@@ -0,0 +1,8 @@
class D<T>(x: T) {
companion object {
val b = D(B())
val c = D(C())
}
var a = A(x)
}
@@ -0,0 +1,51 @@
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/D$Companion.class
out/production/module/D.class
out/production/module/META-INF/module.kotlin_module
out/production/module/UseAKt.class
End of files
Compiling files:
src/D.kt
src/useA.kt
End of files
COMPILATION FAILED
Type mismatch: inferred type is A<B> but A<C> was expected
Cleaning output files:
out/production/module/A.class
End of files
Compiling files:
src/A.kt
src/D.kt
src/useA.kt
End of files
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UseDKt.class
End of files
Compiling files:
src/useD.kt
End of files
COMPILATION FAILED
Type mismatch: inferred type is A<B> but A<C> was expected
Cleaning output files:
out/production/module/A.class
out/production/module/D$Companion.class
out/production/module/D.class
out/production/module/UseAKt.class
End of files
Compiling files:
src/A.kt
src/D.kt
src/useA.kt
src/useD.kt
End of files
@@ -0,0 +1,5 @@
fun useA() {
var b: A<B> = A(B())
var c: A<C> = A(C())
c = b
}
@@ -0,0 +1,5 @@
fun useA() {
var b: A<B> = A(B())
var c: A<C> = A(C())
b = c
}
@@ -0,0 +1,3 @@
fun useD() {
D.c.a = D.b.a
}
@@ -0,0 +1,3 @@
fun useD() {
D.b.a = D.c.a
}