diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt index 71f3cff38b5..d674ef85f28 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.load.kotlin.TypeMappingMode import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier import org.jetbrains.kotlin.psi.psiUtil.hasSuspendModifier import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils @@ -62,7 +63,7 @@ internal class UltraLightMembersCreator( val property = variable as? KtProperty if (property != null && !hasBackingField(property)) return null - if (variable.hasAnnotation(JVM_SYNTHETIC_ANNOTATION_FQ_NAME)) return null + if (variable.hasAnnotation(JVM_SYNTHETIC_ANNOTATION_FQ_NAME) || variable.hasExpectModifier()) return null val hasDelegate = property?.hasDelegate() == true val fieldName = generateUniqueFieldName((variable.name ?: "") + (if (hasDelegate) "\$delegate" else ""), usedPropertyNames) @@ -109,7 +110,10 @@ internal class UltraLightMembersCreator( forcePrivate: Boolean = false ): Collection { - if (ktFunction.hasAnnotation(JVM_SYNTHETIC_ANNOTATION_FQ_NAME) || ktFunction.hasReifiedParameters()) return emptyList() + if (ktFunction.hasAnnotation(JVM_SYNTHETIC_ANNOTATION_FQ_NAME) || + ktFunction.hasReifiedParameters() || + ktFunction.hasExpectModifier() + ) return emptyList() val basicMethod = asJavaMethod(ktFunction, forceStatic, forcePrivate) @@ -361,7 +365,10 @@ internal class UltraLightMembersCreator( ): List { val propertyName = declaration.name ?: return emptyList() - if (declaration.isConstOrJvmField() || declaration.hasReifiedParameters()) return emptyList() + if (declaration.isConstOrJvmField() || + declaration.hasReifiedParameters() || + declaration.hasExpectModifier() + ) return emptyList() val ktGetter = (declaration as? KtProperty)?.getter val ktSetter = (declaration as? KtProperty)?.setter diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt index ddd10adec79..1ef089ceb89 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt @@ -148,9 +148,6 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG } private fun findTooComplexDeclaration(declaration: KtDeclaration): PsiElement? { - if (declaration.hasExpectModifier()) { - return declaration - } if (declaration is KtClassOrObject) { declaration.primaryConstructor?.let { findTooComplexDeclaration(it) }?.let { return it }