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, classKind: ClassKind = ClassKind.CLASS,
config: ClassBuildingContext.() -> Unit = {} config: ClassBuildingContext.() -> Unit = {}
): FirRegularClass { ): 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.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.builder.* import org.jetbrains.kotlin.fir.declarations.builder.*
import org.jetbrains.kotlin.fir.declarations.origin 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.declarations.utils.isInner
import org.jetbrains.kotlin.fir.expressions.buildResolvedArgumentList import org.jetbrains.kotlin.fir.expressions.buildResolvedArgumentList
import org.jetbrains.kotlin.fir.expressions.builder.buildDelegatedConstructorCall import org.jetbrains.kotlin.fir.expressions.builder.buildDelegatedConstructorCall
@@ -122,7 +123,11 @@ public fun FirExtension.createConstructor(
generateDelegatedNoArgConstructorCall: Boolean = false, generateDelegatedNoArgConstructorCall: Boolean = false,
config: ConstructorBuildingContext.() -> Unit = {} config: ConstructorBuildingContext.() -> Unit = {}
): FirConstructor { ): 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) { if (generateDelegatedNoArgConstructorCall) {
it.generateNoArgDelegatingConstructorCall() 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.FirDefaultPropertyBackingField
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter 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.extensions.FirExtension
import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.defaultType
@@ -156,7 +157,11 @@ public fun FirExtension.createMemberProperty(
config: PropertyBuildingContext.() -> Unit = {} config: PropertyBuildingContext.() -> Unit = {}
): FirProperty { ): FirProperty {
val callableId = CallableId(owner.classId, name) 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.buildReceiverParameter
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
import org.jetbrains.kotlin.fir.declarations.origin 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.extensions.FirExtension
import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.defaultType
@@ -113,7 +114,11 @@ public fun FirExtension.createMemberFunction(
config: SimpleFunctionBuildingContext.() -> Unit = {} config: SimpleFunctionBuildingContext.() -> Unit = {}
): FirSimpleFunction { ): FirSimpleFunction {
val callableId = CallableId(owner.classId, name) 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()
} }
/** /**