diff --git a/plugins/android-extensions/android-extensions-idea/src/org/jetbrains/kotlin/android/parcel/IDEParcelableApplicabilityExtension.kt b/plugins/android-extensions/android-extensions-idea/src/org/jetbrains/kotlin/android/parcel/IDEParcelableApplicabilityExtension.kt index 5162f2c2fa0..1651868fda8 100644 --- a/plugins/android-extensions/android-extensions-idea/src/org/jetbrains/kotlin/android/parcel/IDEParcelableApplicabilityExtension.kt +++ b/plugins/android-extensions/android-extensions-idea/src/org/jetbrains/kotlin/android/parcel/IDEParcelableApplicabilityExtension.kt @@ -5,8 +5,6 @@ package org.jetbrains.kotlin.android.parcel -import org.jetbrains.kotlin.annotation.plugin.ide.isAnnotated -import org.jetbrains.kotlin.annotation.plugin.ide.isOrdinaryClass import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.extensions.LightClassApplicabilityCheckExtension @@ -14,9 +12,19 @@ import org.jetbrains.kotlin.extensions.LightClassApplicabilityType import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.extensions.LightClassApplicabilityType.LightClass import org.jetbrains.kotlin.extensions.LightClassApplicabilityType.UltraLightClass +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.psi.KtClass +private val KtDeclaration.isOrdinaryClass + get() = this is KtClass && + !this.hasModifier(KtTokens.INLINE_KEYWORD) && + !this.isAnnotation() && + !this.isInterface() + +private val KtDeclaration.isAnnotated get() = this.annotationEntries.isNotEmpty() class IDEParcelableApplicabilityExtension : LightClassApplicabilityCheckExtension { + override fun checkApplicabilityType(declaration: KtDeclaration, descriptor: Lazy): LightClassApplicabilityType { if (!declaration.isOrdinaryClass || !declaration.isAnnotated) return UltraLightClass