J2K: do not generate super call to abstract property

This commit is contained in:
Natalia Ukhorskaya
2016-04-12 17:14:42 +03:00
parent 72019a1b4e
commit 495be06fc5
9 changed files with 85 additions and 34 deletions
@@ -0,0 +1,16 @@
package test;
import kotlinApi.*;
public class KotlinClassAbstractPropertyImpl extends KotlinClassAbstractProperty {
private boolean myIsVisible;
@Override
public boolean isVisible() {
return myIsVisible;
}
private void test() {
myIsVisible = true;
}
}
@@ -0,0 +1,12 @@
package test
import kotlinApi.*
class KotlinClassAbstractPropertyImpl : KotlinClassAbstractProperty() {
override var isVisible: Boolean = false
private set
private fun test() {
isVisible = true
}
}
+6 -8
View File
@@ -1,6 +1,6 @@
// ERROR: Abstract member cannot be accessed directly
// ERROR: Abstract member cannot be accessed directly
// ERROR: Abstract member cannot be accessed directly
// ERROR: Property must be initialized
// ERROR: Property must be initialized
// ERROR: Property must be initialized
internal interface I {
val isSomething1: Boolean
@@ -23,17 +23,15 @@ internal abstract class C : I {
override var isSomething4: Boolean
get() = false
set(value: Boolean) {
super.isSomething4 = value
}
set
override var isSomething5: Boolean
get() = super.isSomething5
get
set(value) {
}
override var something6: Boolean
get() = super.something6
get
set(value) {
}
}
+4 -6
View File
@@ -1,5 +1,5 @@
// ERROR: Abstract member cannot be accessed directly
// ERROR: Abstract member cannot be accessed directly
// ERROR: Property must be initialized
// ERROR: Property must be initialized
internal interface I {
val something1: Int
@@ -56,12 +56,10 @@ internal abstract class C(override val something1: Int) : B(), I {
override var something4: Int
get() = 0
set(value: Int) {
super.something4 = value
}
set
override var something5: Int
get() = super.something5
get
set(value) {
}