Setter visibility must be worse or the same as property visibility

This commit is contained in:
Mikhail Glukhikh
2015-12-17 16:18:53 +03:00
parent f5989aa4f2
commit fe57a9e48f
10 changed files with 55 additions and 13 deletions
@@ -17,7 +17,7 @@ class Test: ATest(), ITest {
override var prop2 : Int
get() = 14
<!CANNOT_CHANGE_ACCESS_PRIVILEGE!>internal<!> set(value) {}
<!CANNOT_CHANGE_ACCESS_PRIVILEGE, SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>internal<!> set(value) {}
}
fun main(args: Array<String>) {
+25
View File
@@ -0,0 +1,25 @@
class My {
var x: Int = 0
// Ok
private set
private var y: Int = 1
// Error: better
<!SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>public<!> set
protected var z: Int = 2
// Ok
private set
protected var w: Int = 3
// Error: incompatible
<!SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>internal<!> set
internal var v: Int = 4
// Error: incompatible
<!SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>protected<!> set
internal var t: Int = 5
// Error: better
<!SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>public<!> set
}
@@ -0,0 +1,14 @@
package
public final class My {
public constructor My()
internal final var t: kotlin.Int
internal final var v: kotlin.Int
protected final var w: kotlin.Int
public final var x: kotlin.Int
private final var y: kotlin.Int
protected final var z: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}