psi2ir: add test for reference to var with non-accessible setter

This commit is contained in:
Dmitry Petrov
2019-03-19 18:02:33 +03:00
parent 21dbe2e7e7
commit 7e4688da93
2 changed files with 85 additions and 0 deletions
@@ -4,6 +4,13 @@ object Delegate {
operator fun setValue(thisRef: Any?, kProp: Any, value: Int) {}
}
open class C {
var varWithPrivateSet: Int = 1
private set
var varWithProtectedSet: Int = 1
protected set
}
val valWithBackingField = 1
val test_valWithBackingField = ::valWithBackingField
@@ -44,6 +51,9 @@ val test_constVal = ::constVal
val test_J_CONST = J::CONST
val test_J_nonConst = J::nonConst
val test_varWithPrivateSet = C::varWithPrivateSet
val test_varWithProtectedSet = C::varWithProtectedSet
// FILE: J.java
public class J {
public static final int CONST = 1;
@@ -31,6 +31,63 @@ FILE fqName:<root> fileName:/propertyReferences.kt
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
CLASS CLASS name:C modality:OPEN visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:C flags:
CONSTRUCTOR visibility:public <> () returnType:C flags:primary
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='C'
PROPERTY name:varWithPrivateSet visibility:public modality:FINAL flags:var
FIELD PROPERTY_BACKING_FIELD name:varWithPrivateSet type:kotlin.Int visibility:public flags:
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-varWithPrivateSet> visibility:public modality:FINAL <> ($this:C) returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:varWithPrivateSet visibility:public modality:FINAL flags:var
$this: VALUE_PARAMETER name:<this> type:C flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-varWithPrivateSet>(): Int'
GET_FIELD 'varWithPrivateSet: Int' type=kotlin.Int origin=null
receiver: GET_VAR 'this@C: C' type=C origin=null
FUN name:<set-varWithPrivateSet> visibility:private modality:FINAL <> ($this:C, <set-?>:kotlin.Int) returnType:kotlin.Unit flags:
correspondingProperty: PROPERTY name:varWithPrivateSet visibility:public modality:FINAL flags:var
$this: VALUE_PARAMETER name:<this> type:C flags:
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:
BLOCK_BODY
SET_FIELD 'varWithPrivateSet: Int' type=kotlin.Unit origin=null
receiver: GET_VAR 'this@C: C' type=C origin=null
value: GET_VAR 'value-parameter <set-?>: Int' type=kotlin.Int origin=null
PROPERTY name:varWithProtectedSet visibility:public modality:FINAL flags:var
FIELD PROPERTY_BACKING_FIELD name:varWithProtectedSet type:kotlin.Int visibility:public flags:
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-varWithProtectedSet> visibility:public modality:FINAL <> ($this:C) returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:varWithProtectedSet visibility:public modality:FINAL flags:var
$this: VALUE_PARAMETER name:<this> type:C flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-varWithProtectedSet>(): Int'
GET_FIELD 'varWithProtectedSet: Int' type=kotlin.Int origin=null
receiver: GET_VAR 'this@C: C' type=C origin=null
FUN name:<set-varWithProtectedSet> visibility:protected modality:FINAL <> ($this:C, <set-?>:kotlin.Int) returnType:kotlin.Unit flags:
correspondingProperty: PROPERTY name:varWithProtectedSet visibility:public modality:FINAL flags:var
$this: VALUE_PARAMETER name:<this> type:C flags:
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:
BLOCK_BODY
SET_FIELD 'varWithProtectedSet: Int' type=kotlin.Unit origin=null
receiver: GET_VAR 'this@C: C' type=C origin=null
value: GET_VAR 'value-parameter <set-?>: Int' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
PROPERTY name:valWithBackingField visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:valWithBackingField type:kotlin.Int visibility:public flags:final,static
EXPRESSION_BODY
@@ -219,3 +276,21 @@ FILE fqName:<root> fileName:/propertyReferences.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-test_J_nonConst>(): KMutableProperty0<Int>'
GET_FIELD 'test_J_nonConst: KMutableProperty0<Int>' type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
PROPERTY name:test_varWithPrivateSet visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:test_varWithPrivateSet type:kotlin.reflect.KProperty1<C, kotlin.Int> visibility:public flags:final,static
EXPRESSION_BODY
PROPERTY_REFERENCE 'varWithPrivateSet: Int' field=null getter='<get-varWithPrivateSet>(): Int' setter=null type=kotlin.reflect.KProperty1<C, kotlin.Int> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithPrivateSet> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KProperty1<C, kotlin.Int> flags:
correspondingProperty: PROPERTY name:test_varWithPrivateSet visibility:public modality:FINAL flags:val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-test_varWithPrivateSet>(): KProperty1<C, Int>'
GET_FIELD 'test_varWithPrivateSet: KProperty1<C, Int>' type=kotlin.reflect.KProperty1<C, kotlin.Int> origin=null
PROPERTY name:test_varWithProtectedSet visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:test_varWithProtectedSet type:kotlin.reflect.KProperty1<C, kotlin.Int> visibility:public flags:final,static
EXPRESSION_BODY
PROPERTY_REFERENCE 'varWithProtectedSet: Int' field=null getter='<get-varWithProtectedSet>(): Int' setter=null type=kotlin.reflect.KProperty1<C, kotlin.Int> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithProtectedSet> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KProperty1<C, kotlin.Int> flags:
correspondingProperty: PROPERTY name:test_varWithProtectedSet visibility:public modality:FINAL flags:val
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-test_varWithProtectedSet>(): KProperty1<C, Int>'
GET_FIELD 'test_varWithProtectedSet: KProperty1<C, Int>' type=kotlin.reflect.KProperty1<C, kotlin.Int> origin=null