Recompile all class and member usages when flag and member are changed

This commit is contained in:
Alexey Tsvetkov
2015-12-23 15:55:46 +03:00
parent b0627b4ce6
commit e7f8d7103f
20 changed files with 153 additions and 59 deletions
@@ -0,0 +1,3 @@
open class A {
val x: Any = "A.x"
}
@@ -0,0 +1,3 @@
private open class A {
val x: Any? = null
}
@@ -0,0 +1,3 @@
open class A {
val x: Any? = null
}
@@ -0,0 +1 @@
class B : A()
@@ -0,0 +1,56 @@
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
out/production/module/GetAKt.class
out/production/module/GetBKt.class
out/production/module/META-INF/module.kotlin_module
out/production/module/UseAKt.class
out/production/module/UseBKt.class
End of files
Compiling files:
src/B.kt
src/getA.kt
src/getB.kt
src/useA.kt
src/useB.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'
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
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type kotlin.Any?
Cannot access 'x': it is 'invisible_fake' in 'B'
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type kotlin.Any?
Cleaning output files:
out/production/module/A.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/getA.kt
src/getB.kt
src/useA.kt
src/useB.kt
End of files
COMPILATION FAILED
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type kotlin.Any?
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type kotlin.Any?
Compiling files:
src/A.kt
src/B.kt
src/getA.kt
src/getB.kt
src/useA.kt
src/useB.kt
End of files
@@ -0,0 +1 @@
fun getA() = A()
@@ -0,0 +1 @@
fun getB() = B()
@@ -0,0 +1,3 @@
fun useA() {
getA().x.hashCode()
}
@@ -0,0 +1,3 @@
fun useA() {
getA().x?.hashCode()
}
@@ -0,0 +1,3 @@
fun useB() {
getB().x.hashCode()
}
@@ -0,0 +1,3 @@
fun useB() {
getB().x?.hashCode()
}