Recompile implicit type usages when class signature is changed

This commit is contained in:
Alexey Tsvetkov
2016-01-21 18:34:38 +03:00
parent 310a995bb1
commit f32ff42ba3
63 changed files with 255 additions and 22 deletions
@@ -0,0 +1 @@
open class A
@@ -0,0 +1 @@
class B : A()
@@ -0,0 +1 @@
class B : A()
@@ -0,0 +1,36 @@
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/ConsumeBExtLambdaKt.class
out/production/module/ConsumeBLambdaKt.class
out/production/module/META-INF/module.kotlin_module
out/production/module/UseConsumeBExtLambdaKt$useConsumeBExtLambda$1.class
out/production/module/UseConsumeBExtLambdaKt.class
out/production/module/UseConsumeBLambdaKt$useConsumeBLambda$1.class
out/production/module/UseConsumeBLambdaKt.class
End of files
Compiling files:
src/consumeBExtLambda.kt
src/consumeBLambda.kt
src/useConsumeBExtLambda.kt
src/useConsumeBLambda.kt
End of files
COMPILATION FAILED
Type mismatch: inferred type is B but A was expected
Type mismatch: inferred type is B but A was expected
Cleaning output files:
out/production/module/B.class
End of files
Compiling files:
src/B.kt
src/consumeBExtLambda.kt
src/consumeBLambda.kt
src/useConsumeBExtLambda.kt
src/useConsumeBLambda.kt
End of files
@@ -0,0 +1 @@
fun consumeA(a: A) {}
@@ -0,0 +1,3 @@
fun consumeBExtLambda(fn: B.()->Unit) {
B().fn()
}
@@ -0,0 +1,3 @@
fun consumeBLambda(fn: (B)->Unit) {
fn(B())
}
@@ -0,0 +1,3 @@
fun useConsumeBExtLambda() {
consumeBExtLambda() { consumeA(this) }
}
@@ -0,0 +1,3 @@
fun useConsumeBLambda() {
consumeBLambda() { consumeA(it) }
}