Parcelize: Remove remaining experimental status checks (KT-32096)

This commit is contained in:
Yan Zhulanow
2019-07-31 20:23:58 +09:00
parent b3941c4ed0
commit 1f13c4b87b
2 changed files with 10 additions and 11 deletions
@@ -64,6 +64,11 @@ open class ParcelableCodegenExtension : ExpressionCodegenExtension {
private val ALLOWED_CLASS_KINDS = listOf(ClassKind.CLASS, ClassKind.OBJECT, ClassKind.ENUM_CLASS) private val ALLOWED_CLASS_KINDS = listOf(ClassKind.CLASS, ClassKind.OBJECT, ClassKind.ENUM_CLASS)
} }
@Deprecated(
"@Parcelize is now available in non-experimental setups as well.",
replaceWith = ReplaceWith("true"),
level = DeprecationLevel.ERROR
)
protected open fun isExperimental(element: KtElement) = true protected open fun isExperimental(element: KtElement) = true
override val shouldGenerateClassSyntheticPartsInLightClassesMode: Boolean override val shouldGenerateClassSyntheticPartsInLightClassesMode: Boolean
@@ -73,9 +78,6 @@ open class ParcelableCodegenExtension : ExpressionCodegenExtension {
val parcelableClass = codegen.descriptor val parcelableClass = codegen.descriptor
if (!parcelableClass.isParcelize) return if (!parcelableClass.isParcelize) return
val sourceElement = (codegen.myClass as? KtClassOrObject) ?: return
if (!isExperimental(sourceElement)) return
if (parcelableClass.kind !in ALLOWED_CLASS_KINDS) return if (parcelableClass.kind !in ALLOWED_CLASS_KINDS) return
val propertiesToSerialize = getPropertiesToSerialize(codegen, parcelableClass) val propertiesToSerialize = getPropertiesToSerialize(codegen, parcelableClass)
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
import org.jetbrains.kotlin.resolve.source.PsiSourceElement
import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.ErrorUtils
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.SimpleType import org.jetbrains.kotlin.types.SimpleType
@@ -78,6 +77,11 @@ open class ParcelableResolveExtension : SyntheticResolveExtension {
} }
} }
@Deprecated(
"@Parcelize is now available in non-experimental setups as well.",
replaceWith = ReplaceWith("true"),
level = DeprecationLevel.ERROR
)
protected open fun isExperimental(element: KtElement) = true protected open fun isExperimental(element: KtElement) = true
override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor) = null override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor) = null
@@ -89,21 +93,14 @@ open class ParcelableResolveExtension : SyntheticResolveExtension {
fromSupertypes: List<SimpleFunctionDescriptor>, fromSupertypes: List<SimpleFunctionDescriptor>,
result: MutableCollection<SimpleFunctionDescriptor> result: MutableCollection<SimpleFunctionDescriptor>
) { ) {
fun isExperimental(): Boolean {
val sourceElement = (thisDescriptor.source as? PsiSourceElement)?.psi as? KtElement ?: return false
return isExperimental(sourceElement)
}
if (name.asString() == DESCRIBE_CONTENTS.methodName if (name.asString() == DESCRIBE_CONTENTS.methodName
&& thisDescriptor.isParcelize && thisDescriptor.isParcelize
&& isExperimental()
&& result.none { it.isDescribeContents() } && result.none { it.isDescribeContents() }
&& fromSupertypes.none { it.isDescribeContents() } && fromSupertypes.none { it.isDescribeContents() }
) { ) {
result += createMethod(thisDescriptor, DESCRIBE_CONTENTS, Modality.OPEN, thisDescriptor.builtIns.intType) result += createMethod(thisDescriptor, DESCRIBE_CONTENTS, Modality.OPEN, thisDescriptor.builtIns.intType)
} else if (name.asString() == WRITE_TO_PARCEL.methodName } else if (name.asString() == WRITE_TO_PARCEL.methodName
&& thisDescriptor.isParcelize && thisDescriptor.isParcelize
&& isExperimental()
&& result.none { it.isWriteToParcel() } && result.none { it.isWriteToParcel() }
) { ) {
val builtIns = thisDescriptor.builtIns val builtIns = thisDescriptor.builtIns