package
org
.
jetbrains
.
kotlin
.
descriptors
;
import
org
.
jetbrains
.
annotations
.
NotNull
;
import
org
.
jetbrains
.
annotations
.
Nullable
;
import
org
.
jetbrains
.
kotlin
.
mpp
.
PropertySymbolMarker
;
import
org
.
jetbrains
.
kotlin
.
types
.
KotlinType
;
import
org
.
jetbrains
.
kotlin
.
types
.
TypeSubstitutor
;
import
java
.
util
.
Collection
;
import
java
.
util
.
List
;
public
interface
PropertyDescriptor
extends
VariableDescriptorWithAccessors
,
CallableMemberDescriptor
,
PropertySymbolMarker
{
PropertyGetterDescriptor
getGetter
();
PropertySetterDescriptor
getSetter
();
* In the following case, the setter is projected out:
* trait Tr<T> { var v: T }
* fun test(tr: Tr<out String>) {
* tr.v = null!! // the assignment is illegal, although a read would be fine
boolean
isSetterProjectedOut
();
List
<
PropertyAccessorDescriptor
>
getAccessors
();
PropertyDescriptor
getOriginal
();
Collection
<?
extends
PropertyDescriptor
>
getOverriddenDescriptors
();
FieldDescriptor
getBackingField
();
FieldDescriptor
getDelegateField
();
PropertyDescriptor
substitute
(
@
NotNull
TypeSubstitutor
substitutor
);
CopyBuilder
<?
extends
PropertyDescriptor
>
newCopyBuilder
();