[FIR] Consider getter and setter for CANNOT_WEAKEN_ACCESS_PRIVILEGE
Fill source with correct value instead of null for FirDefaultPropertySetter in light tree converter
This commit is contained in:
committed by
teamcityserver
parent
b3d7ed569d
commit
0e2d765a2d
@@ -1,29 +0,0 @@
|
||||
public interface ITest {
|
||||
public var prop : Int
|
||||
get() = 12
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
abstract class ATest {
|
||||
protected open var prop2 : Int
|
||||
get() = 13
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
class Test: ATest(), ITest {
|
||||
override var prop : Int
|
||||
get() = 12
|
||||
private set(value) {}
|
||||
|
||||
override var prop2 : Int
|
||||
get() = 14
|
||||
<!SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY!>internal<!> set(value) {}
|
||||
}
|
||||
|
||||
fun main() {
|
||||
val test = Test()
|
||||
<!INVISIBLE_SETTER!>test.prop<!> = 12
|
||||
|
||||
val itest: ITest = test
|
||||
itest.prop = 12 // No error here
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
public interface ITest {
|
||||
public var prop : Int
|
||||
get() = 12
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
// See KT-10325: private setters are allowed for overridden properties in final class
|
||||
|
||||
interface A {
|
||||
val a: Int
|
||||
|
||||
var b: Int
|
||||
}
|
||||
|
||||
abstract class AA {
|
||||
abstract val c: Int
|
||||
|
||||
abstract var d: Int
|
||||
}
|
||||
|
||||
class B : A, AA() {
|
||||
override var a: Int = 0
|
||||
// Ok
|
||||
private set
|
||||
|
||||
override var b: Int = 1
|
||||
private set
|
||||
|
||||
override var c: Int = 2
|
||||
// Ok
|
||||
private set
|
||||
|
||||
override var d: Int = 3
|
||||
private set
|
||||
}
|
||||
|
||||
open class C : A, AA() {
|
||||
override var a: Int = 0
|
||||
// Errors here and below
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var b: Int = 1
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var c: Int = 2
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var d: Int = 3
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
}
|
||||
|
||||
abstract class D : A, AA() {
|
||||
override var a: Int = 0
|
||||
// Errors here and below
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var b: Int = 1
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var c: Int = 2
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
|
||||
override var d: Int = 3
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
}
|
||||
|
||||
interface E : A {
|
||||
override var a: Int
|
||||
get() = 0
|
||||
// Errors here and below
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set(arg) {}
|
||||
|
||||
override var b: Int
|
||||
get() = 0
|
||||
<!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set(arg) {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See KT-10325: private setters are allowed for overridden properties in final class
|
||||
|
||||
interface A {
|
||||
|
||||
Reference in New Issue
Block a user