K2 plugins: set proper 'expect' flag for all member declarations

Related to KT-59299
This commit is contained in:
Mikhail Glukhikh
2023-06-16 11:52:32 +02:00
committed by Space Team
parent 8e882ea797
commit d5a02960d8
4 changed files with 23 additions and 4 deletions
@@ -136,7 +136,11 @@ public fun FirExtension.createNestedClass(
classKind: ClassKind = ClassKind.CLASS,
config: ClassBuildingContext.() -> Unit = {}
): FirRegularClass {
return ClassBuildingContext(session, key, owner, owner.classId.createNestedClassId(name), classKind).apply(config).build()
return ClassBuildingContext(session, key, owner, owner.classId.createNestedClassId(name), classKind).apply(config).apply {
status {
isExpect = owner.isExpect
}
}.build()
}
/**
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.builder.*
import org.jetbrains.kotlin.fir.declarations.origin
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.declarations.utils.isInner
import org.jetbrains.kotlin.fir.expressions.buildResolvedArgumentList
import org.jetbrains.kotlin.fir.expressions.builder.buildDelegatedConstructorCall
@@ -122,7 +123,11 @@ public fun FirExtension.createConstructor(
generateDelegatedNoArgConstructorCall: Boolean = false,
config: ConstructorBuildingContext.() -> Unit = {}
): FirConstructor {
return ConstructorBuildingContext(session, key, owner, isPrimary).apply(config).build().also {
return ConstructorBuildingContext(session, key, owner, isPrimary).apply(config).apply {
status {
isExpect = owner.isExpect
}
}.build().also {
if (generateDelegatedNoArgConstructorCall) {
it.generateNoArgDelegatingConstructorCall()
}
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildReceiverParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyBackingField
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.extensions.FirExtension
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.defaultType
@@ -156,7 +157,11 @@ public fun FirExtension.createMemberProperty(
config: PropertyBuildingContext.() -> Unit = {}
): FirProperty {
val callableId = CallableId(owner.classId, name)
return PropertyBuildingContext(session, key, owner, callableId, returnTypeProvider, isVal, hasBackingField).apply(config).build()
return PropertyBuildingContext(session, key, owner, callableId, returnTypeProvider, isVal, hasBackingField).apply(config).apply {
status {
isExpect = owner.isExpect
}
}.build()
}
/**
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.builder.buildReceiverParameter
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
import org.jetbrains.kotlin.fir.declarations.origin
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.extensions.FirExtension
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.defaultType
@@ -113,7 +114,11 @@ public fun FirExtension.createMemberFunction(
config: SimpleFunctionBuildingContext.() -> Unit = {}
): FirSimpleFunction {
val callableId = CallableId(owner.classId, name)
return SimpleFunctionBuildingContext(session, key, owner, callableId, returnTypeProvider).apply(config).build()
return SimpleFunctionBuildingContext(session, key, owner, callableId, returnTypeProvider).apply(config).apply {
status {
isExpect = owner.isExpect
}
}.build()
}
/**