Support platform/impl modifiers for properties

Do not allow platform properties to have backing fields, initializers, be
delegated, lateinit or const, or have accessors with bodies
This commit is contained in:
Alexander Udalov
2016-11-01 18:54:00 +03:00
parent af1264a46d
commit ce9691cd2b
23 changed files with 206 additions and 58 deletions
@@ -24,7 +24,10 @@ import org.jetbrains.kotlin.protobuf.MessageLite
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.deserialization.TypeTable
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.SimpleType
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.types.asSimpleType
interface DeserializedMemberDescriptor : MemberDescriptor {
val proto: MessageLite
@@ -87,7 +90,7 @@ class DeserializedPropertyDescriptor(
override val containerSource: SourceElement?
) : DeserializedCallableMemberDescriptor,
PropertyDescriptorImpl(containingDeclaration, original, annotations,
modality, visibility, isVar, name, kind, SourceElement.NO_SOURCE, isLateInit, isConst) {
modality, visibility, isVar, name, kind, SourceElement.NO_SOURCE, isLateInit, isConst, false, false) {
override fun createSubstitutedCopy(
newOwner: DeclarationDescriptor,