J2K: correct handling of properties with "is" notation

This commit is contained in:
Valentin Kipyatkov
2015-09-23 18:13:26 +03:00
parent c8b6db4e57
commit 22797114c7
5 changed files with 170 additions and 35 deletions
@@ -0,0 +1,39 @@
interface I {
boolean isSomething1();
Boolean isSomething2();
int isSomething3();
boolean isSomething4();
void setSomething4(boolean value);
boolean isSomething5();
void setSomething5(boolean value);
boolean getSomething6();
void setSomething6(boolean value);
}
abstract class C implements I {
@Override
public boolean isSomething1() {
return true;
}
public void setSomething1(boolean b) {
}
@Override
public boolean isSomething4() {
return false;
}
@Override
public void setSomething5(boolean value) {
}
@Override
public void setSomething6(boolean value) {
}
}
+39
View File
@@ -0,0 +1,39 @@
// ERROR: Abstract member cannot be accessed directly
// ERROR: Abstract member cannot be accessed directly
// ERROR: Abstract member cannot be accessed directly
internal interface I {
val isSomething1: Boolean
val isSomething2: Boolean?
fun isSomething3(): Int
var isSomething4: Boolean
var isSomething5: Boolean
var something6: Boolean
}
internal abstract class C : I {
override var isSomething1: Boolean
get() = true
set(b: Boolean) {
}
override var isSomething4: Boolean
get() = false
set(value: Boolean) {
super.isSomething4 = value
}
override var isSomething5: Boolean
get() = super.isSomething5
set(value: Boolean) {
}
override var something6: Boolean
get() = super.something6
set(value: Boolean) {
}
}