Move ProtoEnumFlags to :core:metadata

This commit is contained in:
Dmitriy Novozhilov
2020-09-02 11:59:24 +03:00
parent e39ce91253
commit 8d2e89a9ea
14 changed files with 209 additions and 208 deletions
@@ -58,7 +58,7 @@ fun deserializeClassToSymbol(
val kind = Flags.CLASS_KIND.get(flags)
val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(flags))
val status = FirResolvedDeclarationStatusImpl(
FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
modality
).apply {
isExpect = Flags.IS_EXPECT_CLASS.get(flags)
@@ -166,7 +166,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
origin = FirDeclarationOrigin.Library
this.name = name
status = FirResolvedDeclarationStatusImpl(
FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
Modality.FINAL
).apply {
isExpect = Flags.IS_EXPECT_CLASS.get(flags)
@@ -213,7 +213,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val getter = if (hasGetter) {
val getterFlags = if (proto.hasGetterFlags()) proto.getterFlags else defaultAccessorFlags
val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags))
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags))
val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(getterFlags))
if (Flags.IS_NOT_DEFAULT.get(getterFlags)) {
buildPropertyAccessor {
@@ -238,7 +238,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val setter = if (Flags.HAS_SETTER.get(flags)) {
val setterFlags = if (proto.hasSetterFlags()) proto.setterFlags else defaultAccessorFlags
val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags))
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags))
val modality = ProtoEnumFlags.modality(Flags.MODALITY.get(setterFlags))
if (Flags.IS_NOT_DEFAULT.get(setterFlags)) {
buildPropertyAccessor {
@@ -280,7 +280,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
this.symbol = symbol
isLocal = false
status = FirResolvedDeclarationStatusImpl(
FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.modality(Flags.MODALITY.get(flags))
).apply {
isExpect = Flags.IS_EXPECT_PROPERTY.get(flags)
@@ -342,7 +342,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
}
name = callableName
status = FirResolvedDeclarationStatusImpl(
FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
ProtoEnumFlags.modality(Flags.MODALITY.get(flags))
).apply {
isExpect = Flags.IS_EXPECT_FUNCTION.get(flags)
@@ -407,7 +407,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
session = c.session
origin = FirDeclarationOrigin.Library
returnTypeRef = delegatedSelfType
val visibility = FirProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags))
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags))
status = FirResolvedDeclarationStatusImpl(
visibility,
Modality.FINAL
@@ -1,32 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.metadata.ProtoBuf
object FirProtoEnumFlags {
fun visibility(visibility: ProtoBuf.Visibility?): Visibility = when (visibility) {
ProtoBuf.Visibility.INTERNAL -> Visibilities.Internal
ProtoBuf.Visibility.PRIVATE -> Visibilities.Private
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PrivateToThis
ProtoBuf.Visibility.PROTECTED -> Visibilities.Protected
ProtoBuf.Visibility.PUBLIC -> Visibilities.Public
ProtoBuf.Visibility.LOCAL -> Visibilities.Local
else -> Visibilities.Private
}
fun visibility(visibility: Visibility): ProtoBuf.Visibility = when (visibility) {
Visibilities.Internal -> ProtoBuf.Visibility.INTERNAL
Visibilities.Public -> ProtoBuf.Visibility.PUBLIC
Visibilities.Private -> ProtoBuf.Visibility.PRIVATE
Visibilities.PrivateToThis -> ProtoBuf.Visibility.PRIVATE_TO_THIS
Visibilities.Protected -> ProtoBuf.Visibility.PROTECTED
Visibilities.Local -> ProtoBuf.Visibility.LOCAL
else -> throw IllegalArgumentException("Unknown visibility: $visibility")
}
}
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.fir.types.ProjectionKind
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
@Suppress("unused")
fun ProtoEnumFlags.projection(projectionKind: ProjectionKind): ProtoBuf.Type.Argument.Projection = when (projectionKind) {
ProjectionKind.INVARIANT -> ProtoBuf.Type.Argument.Projection.INV
ProjectionKind.IN -> ProtoBuf.Type.Argument.Projection.IN
ProjectionKind.OUT -> ProtoBuf.Type.Argument.Projection.OUT
ProjectionKind.STAR -> throw AssertionError("Should not be here")
}