Parcelize: Remove remaining experimental status checks (KT-32096)
This commit is contained in:
+5
-3
@@ -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)
|
||||||
|
|||||||
+5
-8
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user