Remove unsafe cast function usages from compiler plugins

This commit is contained in:
Alexander Udalov
2022-11-01 14:42:29 +01:00
committed by Space Team
parent fd9b19ee49
commit 0d8d91f803
7 changed files with 17 additions and 22 deletions
@@ -36,7 +36,6 @@ import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELABLE_FQN
import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELER_FQN
import org.jetbrains.kotlin.parcelize.ParcelizeNames.WRITE_TO_PARCEL_NAME
import org.jetbrains.kotlin.parcelize.ParcelizeSyntheticComponent
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
@OptIn(ObsoleteDescriptorBasedAPI::class)
class ParcelizeIrTransformer(
@@ -141,7 +140,7 @@ class ParcelizeIrTransformer(
}
declaration.functions.find {
it.descriptor.safeAs<ParcelizeSyntheticComponent>()?.componentKind == ParcelizeSyntheticComponent.ComponentKind.DESCRIBE_CONTENTS
(it.descriptor as? ParcelizeSyntheticComponent)?.componentKind == ParcelizeSyntheticComponent.ComponentKind.DESCRIBE_CONTENTS
}?.let { stub ->
symbolMap[stub.symbol] = describeContents.symbol
declaration.declarations.remove(stub)
@@ -178,7 +177,7 @@ class ParcelizeIrTransformer(
}
declaration.functions.find {
it.descriptor.safeAs<ParcelizeSyntheticComponent>()?.componentKind == ParcelizeSyntheticComponent.ComponentKind.WRITE_TO_PARCEL
(it.descriptor as? ParcelizeSyntheticComponent)?.componentKind == ParcelizeSyntheticComponent.ComponentKind.WRITE_TO_PARCEL
}?.let { stub ->
symbolMap[stub.symbol] = writeToParcel.symbol
declaration.declarations.remove(stub)
@@ -31,7 +31,6 @@ import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.isError
import org.jetbrains.kotlin.types.typeUtil.representativeUpperBound
import org.jetbrains.kotlin.types.typeUtil.supertypes
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
open class ParcelizeDeclarationChecker : DeclarationChecker {
private companion object {
@@ -290,7 +289,7 @@ open class ParcelizeDeclarationChecker : DeclarationChecker {
}
private fun KotlinType.getErasedUpperBound(): KotlinType =
constructor.declarationDescriptor?.safeAs<TypeParameterDescriptor>()?.representativeUpperBound?.getErasedUpperBound()
(constructor.declarationDescriptor as? TypeParameterDescriptor)?.representativeUpperBound?.getErasedUpperBound()
?: this
private fun ClassDescriptor.hasCustomParceler(): Boolean {