Accessor visibilities are now forbidden for abstract properties

This commit is contained in:
Mikhail Glukhikh
2015-10-09 16:47:35 +03:00
parent b709b431ea
commit e121ba549e
13 changed files with 61 additions and 22 deletions
+15
View File
@@ -0,0 +1,15 @@
abstract class My {
abstract var x: Int
<!REDUNDANT_MODIFIER_IN_GETTER!>public<!> get
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
abstract val y: Int
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>protected<!> get
abstract protected var z: Int
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>internal<!> get
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>public<!> set
abstract internal val w: Int
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>protected<!> get
}
@@ -0,0 +1,12 @@
package
public abstract class My {
public constructor My()
internal abstract val w: kotlin.Int
public abstract var x: kotlin.Int
public abstract val y: kotlin.Int
protected abstract 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
}
@@ -9,8 +9,8 @@ abstract class MyAbstractClass() {
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
var b1: Int = 0; private set
abstract var b2: Int private set
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; private set
abstract var b2: Int <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
var c1: Int = 0; set(v: Int) { field = v }
+2 -2
View File
@@ -9,8 +9,8 @@ class MyClass() {
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
var b1: Int = 0; private set
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b2: Int private set
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b3: Int = 0; private set
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b2: Int <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b3: Int = 0; <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
var c1: Int = 0; set(v: Int) { field = v }
+3 -3
View File
@@ -7,10 +7,10 @@ interface MyTrait {
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> val a2: Int
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> val a3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>1<!>
var b: Int private set
var b: Int <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
var b1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; private set
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> var b2: Int private set
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; private set
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> var b2: Int <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!ABSTRACT_MODIFIER_IN_INTERFACE!>abstract<!> var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!BACKING_FIELD_IN_INTERFACE!>var c: Int<!> set(v: Int) { field = v }
<!BACKING_FIELD_IN_INTERFACE!>var c1: Int<!> = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; set(v: Int) { field = v }
+2 -2
View File
@@ -11,8 +11,8 @@ enum class MyEnum() {
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
var b1: Int = 0; private set
abstract var b2: Int private set
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; private set
abstract var b2: Int <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
var c1: Int = 0; set(v: Int) { field = v }
+3 -3
View File
@@ -5,11 +5,11 @@ interface Test<in I, out O> {
<!PRIVATE_PROPERTY_IN_INTERFACE!>private<!> val private_val: I
var interlan_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
private set
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
public var public_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
private set
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> var protected_private_set: <!TYPE_VARIANCE_CONFLICT!>O<!>
private set
<!ACCESSOR_VISIBILITY_FOR_ABSTRACT_PROPERTY!>private<!> set
<!PRIVATE_PROPERTY_IN_INTERFACE!>private<!> var private_private_set: O
private set